Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Plotly:如何自定义散点图中的标签?_Python_Text_Label_Plotly_Marker - Fatal编程技术网

Python Plotly:如何自定义散点图中的标签?

Python Plotly:如何自定义散点图中的标签?,python,text,label,plotly,marker,Python,Text,Label,Plotly,Marker,在下面的代码中,我有标记标签,它现在位于这些标记附近。如何在标记和标签之间定制目的地?我现在想把标签放在离标记稍微远一点的地方 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','4

在下面的代码中,我有标记标签,它现在位于这些标记附近。如何在标记和标签之间定制目的地?我现在想把标签放在离标记稍微远一点的地方

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")

fig.update_traces(hovertemplate ='bins')

fig.add_trace(go.Scattergeo(lon=df["longitude"],
              lat=df["latitude"],
              text=df["data"],
              textposition="middle right",
              mode='text',
              showlegend=False))
fig.show()

我看到您正在使用第二个
Scattergeo
trace来显示标签。这似乎不是一个坏主意,因为在我看来,
fig.add_annotation
px.scatter_geo
图中可能有点棘手。因此我只需稍微调整纬度和经度数字,以获得您喜欢的标签位置,如
lon=[float(d)+10代表df['longitude']

完整代码:

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")

fig.update_traces(hovertemplate ='bins')

fig.add_trace(go.Scattergeo(lon=[float(d) + 10 for d in df['longitude']],
                              lat=[float(d) - 10 for d in df['latitude']],
                              text=df["data"],
                              textposition="middle right",
                              mode='text',
                              showlegend=False))
fig.show()

这个问题与你的另一个问题有什么不同?这是一个很好的选择,但也许你知道如何在这个条件下,不仅仅是绝对值。Coz标签位于不同标记的不同距离上。我相信在这种情况下,标签坐标和
数据中的值之间应该存在依赖关系。等我有时间的时候再去看看。