可以在图例中隔离痕迹,但仅隔离标记而不隔离标记上的文本。如何也隔离文字?
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=(['data']))
fig.add_trace(go.Scattergeo(lon=df["longitude"],
lat=df["latitude"],
text=df["data"],
textposition="middle center",
mode='text',
showlegend=False))
fig.show()
如果单击“容器”之一上的可视化init的图例部分,则该容器的标记会失效,但其标记的标签仍将存在(请参见下面的图片)。
PS,我需要标签的附加跟踪,因为在我的最初工作中,我并没有为所有标记放置标签。
您可以在数据框中创建另一列,该列仅在data
列中包含要标记的标记的条目。它们的其余部分应该为空,即 ''
。然后,您可以在text
中添加scatter_geo
,因此当您在图例中关闭组时,其标签也会消失。
import plotly.express as px
import plotly.graph_objs as go
import pandas as pd
rows=[['501-600','15', '15', '122.58333','45.36667'],
['till 500','4', '', '12.5','27.5'],
['more 1001','41', '41', '-115.53333','38.08'],
]
colmns=['bins','data', 'label', 'longitude','latitude']
df=pd.DataFrame(data=rows, columns=colmns)
df = df.astype({"data": int})
## print(df)
fig=px.scatter_geo(df,lon='longitude', lat='latitude',
text=df["label"],
color='bins',
opacity=0.5,
size='data',
projection="natural earth",
hover_data=(['data']))
fig.show()