我目前正在使用plotly.express的choropleth进行一个地图项目,这张地图结合了两条痕迹:一种是由颜色定义的区域的choropleth地图,第二种是气泡来放置一些选定的国家(并非全部)。
我有两个数据文件,一个带有iso alpha-3代码和它们所在的区域(这将定义地图上的颜色),第二个数据是一些国家的客户端(再次使用iso alpha-3代码)。
我设法合并了这两张地图,但我只想要第二个国家的“悬停”(所以当我的光标转到国家的相关点时),并使用hovermode=False禁用地图上的所有悬停.是否有一种方法可以选择我们想要的悬停并禁用另一个而不移除所有的东西?
fig = px.choropleth(df, locations="alpha-3",
color="sub-region",
color_discrete_map= {"Middle East and Africa":"#2a7bb0",
"Europe":"#fc5e61",
"Asia":"#00a19c",
"Northern America":"#00134d",
"Russia and Central Asia": "#febec0",
"Latin America and the Caribbean":"#99a1b8"})
fig.update_layout(width=1500, height=1000, margin={"r":0,"t":0,"l":0,"b":0}, hovermode=False)
fig.update_geos(projection_type="mercator", visible=False)
fig.update_traces(marker_line_width=0)
fig2 = px.scatter_geo(dfa, locations="alpha-3", size="actors")
fig.add_trace(fig2.data[0])
aPlot = plotly.offline.plot(fig,
config={"displayModeBar": False},
show_link=False,
include_plotlyjs=False,
output_type='div')图为副图,fig2为圆图。hovermode=False是在合并之前设置的,但它不起作用。我试图用无花果更新fig2,但是没有显示圆圈.在这一点上,我不知道如何才能从fig2.
编辑:下面是数据文件的一个片段:
name alpha-3 country-code region sub-region
0 Zimbabwe ZWE 716 Africa Middle East and Africa
1 Zambia ZMB 894 Africa Middle East and Africa
2 South Africa ZAF 710 Africa Middle East and Africa
3 Yemen YEM 887 Asia Middle East and Africa
4 Viet Nam VNM 704 Asia Asia name ... Actors
0 South Africa ... NameOfAnActor发布于 2022-11-30 12:24:28
好的,所以我将分享我如何处理这个问题,这并不完美,但它可能会有所帮助。“解决方案”是通过禁用hover_data从第一个图形中删除所有数据,如下所示:
hover_data={"alpha-3":False,"sub-region":False}这个解决方案并不完美,因为每个国家都有一个指针,但除了泡沫之外,至少什么也没有显示出来。
https://stackoverflow.com/questions/74614344
复制相似问题