3 回答

TA貢獻1875條經驗 獲得超5個贊
你可以在下面提到 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 中刪除該列名。希望這能回答您的問題。

TA貢獻1804條經驗 獲得超8個贊
使用接受的答案,我發現了以下錯誤(類似于@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'
我通過傳遞我想要的數據框列列表而不是字典來消除錯誤:
hover_data = [df["whatever I want displayed"],df["other thing to display"]]
這種陰謀的行為對我來說似乎是一個錯誤。請注意,這不允許刪除列,只能添加。

TA貢獻1862條經驗 獲得超6個贊
使用懸停模板:懸停模板在這種情況下可能效果很好:
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>')
有關在懸停模板中 使用的信息,請參見此處和此處。customdata
customdata – 為每個數據分配額外的數據。這在監聽懸停、點擊和選擇事件時可能很有用。請注意,“分散”跟蹤還在標記 DOM 元素中附加自定義數據項
更新:使用中的color選項px.scatter_geo將對結果圖的數據進行分組,這樣customdata就不再與帶下劃線的圖數據對齊。這通常是我放棄 plotly express 而使用 plotly go 的地方。
添加回答
舉報