[英]How to center plotly scatter_geo to a specific country in python
[英]Python plotly scatter_geo modify hover data
我想修改 hover 数据并将其留给例如bins
数据。 我做了以下代码,但是hover_data
参数不起作用。 修改haver数据的方法是什么?
import plotly.express as px
import plotly.graph_objs as go
import pandas as pd
rows=[['501-600','15','122.58333','45.36667'],
['till 500','4','12.5','27.5'],
['more 1001','41','-115.53333','38.08'],
]
colmns=['bins','data','longitude','latitude']
df=pd.DataFrame(data=rows, columns=colmns)
df = df.astype({"data": int})
fig=px.scatter_geo(df,lon='longitude', lat='latitude',
color='bins',
opacity=0.5,
size='data',
projection="natural earth", hover_data=(['bins']))
fig.add_trace(go.Scattergeo(lon=df["longitude"],
lat=df["latitude"],
text=df["data"],
textposition="middle center",
mode='text',
showlegend=False))
fig.show()
您可以在下面提到 scatter_geo 的 hover_data 参数。
import plotly.express as px
import plotly.graph_objs as go
import pandas as pd
rows=[['501-600','15','122.58333','45.36667'],
['till 500','4','12.5','27.5'],
['more 1001','41','-115.53333','38.08'],
]
colmns=['bins','data','longitude','latitude']
df=pd.DataFrame(data=rows, columns=colmns)
df = df.astype({"data": int})
fig=px.scatter_geo(df,lon='longitude', lat='latitude',
color='bins',
opacity=0.5,
size='data',
projection="natural earth", hover_data={'longitude':False,'latitude':False,'data':False})
fig.add_trace(go.Scattergeo(lon=df["longitude"],
lat=df["latitude"],
text=df["data"],
textposition="middle center",
mode='text',
showlegend=False))
fig.show()
在 hover_data 中将列名设置为 False 将从 hover_data 中删除该列名。 希望这能回答你的问题。
使用接受的答案,我发现了以下错误(类似于@Asha Ramprasad 的评论):
RuntimeError: dictionary changed size during iteration
同样,对于以下内容:
Python 3.7.6 (default, Jan 8 2020, 13:42:34)
>>> import plotly
>>> plotly.__version__
'4.4.1'
我通过传递我想要的 dataframe 列的列表而不是字典来删除错误:
hover_data = [df["whatever I want displayed"],df["other thing to display"]]
这种 plotly 行为对我来说似乎是一个错误。 请注意,这不允许删除列,只能添加。
使用 Hover 模板: hover 模板在这种情况下可能会很好地工作:
fig=px.scatter_geo(df,lon='longitude', lat='latitude',
#color='bins',
opacity=0.5,
size='data',
projection="natural earth")
fig.update_traces(customdata=df.bins)
fig.update_traces(hovertemplate='Bins: %{customdata}<extra></extra>')
有关在 hover 模板中使用customdata
的信息,请参阅此处和此处。
customdata – 为每个数据分配额外的数据。 这在收听 hover、点击和选择事件时可能很有用。 请注意,“分散”跟踪还会在标记 DOM 元素中附加自定义数据项
更新:使用px.scatter_geo
中的color
选项将对结果图的数据进行分组,以便自定义数据不再与下划线customdata
数据对齐。 这通常是我放弃 plotly express 并使用 plotly go 的点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.