图例中的Python plotly scatter_geo_Text隔离

问题描述 投票:1回答:1

可以在图例中隔离痕迹,但仅隔离标记而不隔离标记上的文本。如何也隔离文字?

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的图例部分,则该容器的标记会失效,但其标记的标签仍将存在(请参见下面的图片)。enter image description hereenter image description here

PS,我需要标签的附加跟踪,因为在我的最初工作中,我并没有为所有标记放置标签。

python plotly legend scatter isolation
1个回答
0
投票

您可以在数据框中创建另一列,该列仅在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()
© www.soinside.com 2019 - 2024. All rights reserved.