Ich habe einen Geodatenrahmen mit Punkten und einigen zugehörigen Daten. Ich möchte es mit Geopandas auf einer Karte darstellen und die Größe der Punkte einer der Spalten im Geodatenrahmen entsprechen lassen.
Bisher habe ich folgenden Code:
base = world.plot(color='white', figsize=(20,10))
geo_df.plot(ax=base, marker='.', color='red', markersize =
geo_df['Pop_2005'])
plt.xlim([-85, -60])
plt.ylim([-5, 12.5]);
Aber ich bekomme folgenden Fehler: TypeError: cannot convert the series to <class 'float'>
Irgendwelche Ideen?
python
geopandas
matplotlib
pandas
Juan Francisco Saldarriaga
quelle
quelle
Pop_2005
explizit in einen Float oder eine Ganzzahl umzuwandeln?geo_df['Pop_2005'] = geo_df['Pop_2005'].astype(float)
Antworten:
In Geopandas> = 0,3 (veröffentlicht im September 2017) basiert die
scatter
Darstellung von Punkten auf der Darstellungsmethode von Matplotlib unter der Haube, und dies akzeptiert eine variable Markierungsgröße.Jetzt können Sie also tatsächlich eine Spalte an das übergeben
markersize
, was das OP in der ursprünglichen Frage getan hat:gibt:
Wenn Sie lediglich die Markierungsgröße auf einen anderen konstanten Wert ändern möchten, können Sie dem Schlüsselwort natürlich immer noch einen einzelnen Gleitkommawert übergeben:
quelle