Mam geodataframe z punktami i niektórymi powiązanymi danymi. Chcę wykreślić go na mapie przy użyciu geopand i mieć rozmiar punktów odpowiadający jednej z kolumn w ramce geodata.
Do tej pory mam następujący kod:
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]);
Ale pojawia się następujący błąd: TypeError: cannot convert the series to <class 'float'>
Jakieś pomysły?
python
geopandas
matplotlib
pandas
Juan Francisco Saldarriaga
źródło
źródło
Pop_2005
wprost na liczbę zmiennoprzecinkową lub całkowitą?geo_df['Pop_2005'] = geo_df['Pop_2005'].astype(float)
Odpowiedzi:
W geopandach> = 0,3 (wydany we wrześniu 2017 r.),
scatter
Wykreślanie punktów opiera się na metodzie matplotlib pod maską, a to przyjmuje zmienną wielkość markera.Teraz możesz przekazać kolumnę do
markersize
tego, co OP zrobił w pierwotnym pytaniu:daje:
Oczywiście, jeśli Twoim celem jest po prostu zmiana rozmiaru znacznika na inną stałą wartość, nadal możesz przekazać pojedynczy parametr zmiennoprzecinkowy do słowa kluczowego:
źródło