Punkte und Beschriftungen auf der Karte
Dieser Post setzt voraus dass Sie die Artikel ab einfache Karte mit geopandas gelesen haben.
import geopandas
import matplotlib.pyplot as plt
from shapely.geometry import Point
# Read the shapefile and related data
gdf = geopandas.read_file( "swissBOUNDARIES3D_1_3_TLM_KANTONSGEBIET.shp" )
# Plot the map
ax = gdf.plot()
# Definitions for the cities
cities = geopandas.GeoDataFrame(
{ "name": ["Regensdorf", "Bern", "Basel", "Brig", "Zürich"],
"position": [Point(2677911.365,1254622.585),Point(2599859.275,1199633.166),
Point(2611328.186,1267660.365),Point(2642300.939,1129536.286),
Point(2682771.071,1247998.554)],
"tx": [2677849,2599858,2617802,2640000,2685000],
"ty": [1259315,1190000,1257500,1120000,1236000]
}, geometry="position" ) ;
# Plot the points
cities.plot( ax=ax, color="red", markersize=5 )
# Name the points
cities.apply( lambda r: ax.annotate(r[0],xy=(r[2],r[3]),color="white",horizontalalignment="center"), axis=1 )
# Remove axes and margins
ax.margins( 0 )
plt.axis( "off" )
# Save plot as SVG
plt.savefig( "gpthird.svg", bbox_inches="tight", pad_inches=0.1 )
Um den Code zu vereinfachen habe ich die Koordinaten der Ortschaften in LV95 umgerechnet.
Wie Sie sehen ist ein DataFrame von Geopandas ein erweiterter Datenframe von Pandas. Der Parameter geometry gibt an in welcher Spalte sich die Geometrie befindet.
Weiter geht es mit der Choroplethen-Karte: Cororplethenkarte mit Geopandas