我想显示某些国家的人口变化情况下使用plotly和Choroplet的世界地图,但它不起作用,我也不明白为什么。
This is my pandas table
该代码应绘制图形:
import plotly.plotly as py
import plotly
import plotly.figure_factory as ff
from plotly.offline import download_plotlyjs, init_notebook_mode, plot,iplot
init_notebook_mode(connected=True)
flow = color_table.iloc[:,3]
data = [dict(type = 'choroplet',
colorscale = 'Rainbow',
location = color_table['COUNTRY_NAME_IT_y'],
z = flow,
text = color_table['COUNTRY_NAME_IT_x'],
colorbar = dict(title = 'Flow of foreign users', titlefont=dict(size=25),tickfont=dict(size=18)),
)]
layout = dict(title = 'Flow of foreign users',
geo = dict(showframe = False,showcoastlines = False,projection = dict(type = 'equirectangular'))
)
fig = dict(layout=layout, data=data)
iplot(fig,validate=False, filename='d3-world-map')
最佳答案
经过几次更改后,我终于可以启动您的choropleth了:
1. type='choropleth'
,而不是type='choroplet'
。
2. 'locations'
,而不是'location'
。
3.如果您想要世界地图,则将showcoastlines
更改为True
-这会使地图看起来更漂亮。
4.您可以删除projection
中的geo
,因为type=equirectangular
是此参数的默认值。
我添加了带有默认值的locationmode
和scope
参数(但都注释了)。这些参数应该在构建节流孔时对您有很大帮助。例如,将scope='world'
更改为scope='europe'
只允许您查看欧洲地图,而不是世界地图(在您的数据中,所有欧洲国家/地区都可以查看)。您可以阅读有关这些参数1和2的更多信息。另外,不要害怕查看有关Choropleth和地理模块3和4的所有参数的完整参考。
码:
from plotly.offline import init_notebook_mode, iplot
init_notebook_mode(connected=True)
list1 = ['Romania', 'Russia', 'Austria']
list2 = ['ROU', 'RUS', 'AUT']
list3 = [0.4, 0.1, 0.3]
data = [dict(type='choropleth',
colorscale='Rainbow',
locations=list2,
# locationmode='ISO-3',
z=list3,
text=list1,
colorbar=dict(title='Flow of foreign users',
titlefont=dict(size=25),
tickfont=dict(size=18)),
)]
layout = dict(title='Flow of foreign users',
geo=dict(
showframe=False,
showcountries=True,
# scope='world',
),
)
fig = dict(layout=layout, data=data)
iplot(fig, validate=False, filename='d3-world-map')
输出: