按国家/地区划分的频率图

问题描述 投票:0回答:1

我正在尝试为某些国家/地区制作带有某些特定频率数据的世界地图。我曾尝试使用 plotly(下图),但底图不可用,而且它不会让我加载我找到的新地图。

我需要的地图是存在此变量的国家/地区的色标(强度)。

这些是我用来绘制地图的数据和代码:

database = px.data.gapminder()

d = {'Australia':[3],
'Brazil' :[2],
'Canada':[6],
'Chile':[3],
'Denmark':[1],
'France':[16],
'Germany':[3],
'Israel':[1]}


data = pd.DataFrame(d).T.reset_index()
data.columns=['country', 'count']

df=pd.merge(database, yourdata, how='left', on='country')

url = (
    "https://raw.githubusercontent.com/python-visualization/folium/master/examples/data"
)

fig = px.choropleth(df, locations="country",
                    locationmode='ISO-3',
                    geojson = f"{url}/world-countries.json",
                    color="count")

我不断收到同样的错误。

python pandas plotly maps
1个回答
1
投票

我觉得不显示的原因是location mode和target column指定的不对。如果位置模式为“iso_3”,则对于此数据,位置将为“iso_alpha”。此外,如果位置模式是“国家名称”,则位置将是“国家”。由于呈现的数据较多,我们按年份提取并更改了合并方法。

import pandas as pd

d = {'Australia':[3],
'Brazil' :[2],
'Canada':[6],
'Chile':[3],
'Denmark':[1],
'France':[16],
'Germany':[3],
'Israel':[1]}


data = pd.DataFrame(d).T.reset_index()
data.columns=['country', 'count']

import plotly.express as px

database = px.data.gapminder().query('year == 2007')

df = pd.merge(database, data, how='inner', on='country')
url = (
    "https://raw.githubusercontent.com/python-visualization/folium/master/examples/data"
)

fig = px.choropleth(df,
                    locations="country",#"iso_alpha",
                    locationmode="country names",#"ISO-3",
                    geojson = f"{url}/world-countries.json",
                    color="count"
                   )

fig.show()

© www.soinside.com 2019 - 2024. All rights reserved.