So fügen Sie eine Maßstabsleiste in eine Map in matplotlib ein

8

Irgendwelche Ideen, wie ich eine Maßstabsleiste in eine Map in matplotlib einfügen kann, die die Längenskala zeigt? etwas wie das, das ich angehängt habe.

Oder vielleicht irgendwelche Ideen, Entfernungen automatisch zu messen und anzuzeigen (keinen Pfeil zu zeichnen und die Entfernung manuell zu schreiben)?

Danke :)

    
Behnam 30.09.2016, 08:12
quelle

2 Antworten

4

Ich würde das matplotlib-scalebar -Paket versuchen. (Für etwas wie Ihr Beispiel c.)

Angenommen, Sie zeichnen ein Kartenbild mit imshow oder ähnlichem, und Sie kennen die Pixelbreite / Zellengröße (die tatsächliche äquivalente Größe eines Pixels auf dem Kartenbild), können Sie die Maßstabsleiste automatisch erstellen :

Dieses Beispiel ist direkt auf der PyPi matplotlib-scalebar Paketseite , aber hier nur der Vollständigkeit halber:

%Vor%

    
decvalts 20.01.2017 00:57
quelle
4

Es gibt eine bereits existierende Klasse für scalebars in matplotlib namens AnchoredSizeBar . Im folgenden Beispiel wird mit AnchoredSizeBar ein Scalebar zu einem Bild hinzugefügt (oder über einen 100x100 Meter großen Zufälligkeitsbereich abgebildet).

%Vor%

Extent definiert die Bilder max und min der horizontalen und vertikalen Werte.

%Vor%

Die vier ersten Argumente von AnchoredSizeBar sind das Transformationsobjekt des Koordinatensystems, die Länge der Skalierung, die Beschriftung und die Position. Weitere optionale Argumente ändern das Layout. Diese sind im Docstring gut erklärt.

%Vor%

Dies gibt ScaleBar auf einem Bild / einer Karte über einen zufälligen Bereich von 100x100 Metern

    
idahj 25.08.2017 13:00
quelle