3 回答

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超5個(gè)贊
你可以在下面提到 scatter_geo 的 hover_data 參數(shù)。
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 中將列名設(shè)置為 False 將從 hover_data 中刪除該列名。希望這能回答您的問(wèn)題。

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超8個(gè)贊
使用接受的答案,我發(fā)現(xiàn)了以下錯(cuò)誤(類似于@Asha Ramprasad 的評(píng)論):
RuntimeError: dictionary changed size during iteration
同樣,對(duì)于以下內(nèi)容:
Python 3.7.6 (default, Jan 8 2020, 13:42:34)
>>> import plotly
>>> plotly.__version__
'4.4.1'
我通過(guò)傳遞我想要的數(shù)據(jù)框列列表而不是字典來(lái)消除錯(cuò)誤:
hover_data = [df["whatever I want displayed"],df["other thing to display"]]
這種陰謀的行為對(duì)我來(lái)說(shuō)似乎是一個(gè)錯(cuò)誤。請(qǐng)注意,這不允許刪除列,只能添加。

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