gpt4 book ai didi

python - Plotly 中的行悬停文本

转载 作者:太空狗 更新时间:2023-10-30 02:26:09 25 4
gpt4 key购买 nike

我正在使用类似于 example on the Plotly website 的 Plotly 绘制图表.
除了图形节点上的悬停文本外,我还希望边缘上有悬停文本。

我试图通过添加“名称”字段来修改边缘的跟踪对象来实现此目的,但这没有用,而是将“名称”放在节点上。

trace3=Scatter(
x=Xed,
y=Yed,
name="my_hover_text",
mode='lines',
line=Line(color='rgb(210,210,210)', width=1),
hoverinfo='name'
)

使用“文本”字段而不是“名称”字段,会得到完全相同的结果。

我还尝试过为每条边单独绘制一条轨迹,这应该可以解决在线上将名称放在何处的困惑,但这让我无处可去。
作为底线,我需要一种方法将(悬停)标签/文本放在连接两点的线上。

最佳答案

一个快速的解决方案/技巧是遵循 etienne's idea来自 Maximilian 在评论中提到的社区论坛页面。
这个想法是在每一行上插入一个透明节点,并用悬停文本标签对其进行注释。

这是一个对我有用的代码

trace3_list = []
middle_node_trace = go.Scatter(
x=[],
y=[],
text=[],
mode='markers',
hoverinfo='text',
marker=go.Marker(
opacity=0
)
)
for edge in G.edges(data=True):
trace3=Scatter(
x=[],
y=[],
mode='lines',
line=Line(color='rgb(210,210,210)', width=edge[2]['weight']),
hoverinfo='none'
)
x0, y0 = G.node[edge[0]]['pos']
x1, y1 = G.node[edge[1]]['pos']
trace3['x'] += [x0, x1, None]
trace3['y'] += [y0, y1, None]
trace3_list.append(trace3)

middle_node_trace['x'].append((x0+x1)/2)
middle_node_trace['y'].append((y0+y1)/2)
middle_node_trace['text'].append(str(edge[2]['weight']))

然后绘制所有轨迹,即 [*trace3_list, middle_node_trace]

奖励:为每个边缘设置单独的轨迹允许设置不同的宽度,例如与边缘权重成正比。

关于python - Plotly 中的行悬停文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46037897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com