Нарисуйте пузыри на карте мира, используя geo pandas и pandas in python (самое простое решение) - PullRequest
0 голосов
/ 23 марта 2020

как я могу разместить информацию о кадре ниже на карте geo pandas? Размер пузыря должен зависеть от регистрационных номеров!

import geopandas
import geoplot
import pandas


d = {"Germany": 5, "United Kingdom" : 3, "Finland" : 1, "United States of America" : 4}
df = pandas.DataFrame.from_dict(d,orient='index')
df.columns = ["Cases"]

def WorldCaseMap():
    world = geopandas.read_file(geopandas.datasets.get_path("naturalearth_lowres"))
    ex = geoplot.polyplot(world)


WorldCaseMap()

Ответы [ 2 ]

1 голос
/ 23 марта 2020

Создайте второй df, содержащий геометрию центроида, и нанесите его поверх первого. Рабочий пример ниже.

import geopandas as gpd
world = gpd.read_file(gpd.datasets.get_path("naturalearth_lowres"))

centroids = world.copy()
centroids.geometry = world.centroid
centroids['size'] = centroids['pop_est'] / 1000000  # to get reasonable plotable number

ax = world.plot(facecolor='w', edgecolor='k')
centroids.plot(markersize='size', ax=ax)

result

0 голосов
/ 23 марта 2020

Я не уверен, geopandas дает вам карту пузыря, которая легко. Их лучший пример - хороплет:

gpd_per_person = world['gdp_md_est'] / world['pop_est']
scheme = mapclassify.Quantiles(gpd_per_person, k=5)

# Note: this code sample requires geoplot>=0.4.0.
geoplot.choropleth(
    world, hue=gpd_per_person, scheme=scheme,
    cmap='Greens', figsize=(8, 4)
)

Источник

Я нашел другой пример пузырьковых карт, используя geopandas здесь: https://residentmario.github.io/geoplot/gallery/plot_usa_city_elevations.html однако я предпочитаю внешний вид примера. (См. Ниже).

В противном случае посмотрите на примеры сюжета, у них есть пузырьковая карта: https://plot.ly/python/bubble-maps/

...