我正在尝试构建一个图形,在这个图形中,线条图应该只显示最后一个元素的值,在一些漂亮的格式中。
现在,文本的当前方法显示了所有元素,并且是一个直接的文本,它在同一张图中创建了许多与不同线条的碰撞,看起来很笨拙。
如下图所述,实现这一目标将是非常好的。
发布于 2022-01-10 09:07:09
现在通过以下方式处理这一问题:
legendgroup = d.name情节1:全部

情节2:取消在图例中选择GOOG,并确保标记也消失:

完整代码:
# imports
import pandas as pd
import plotly.express as px
# data
df = px.data.stocks()
df = df.drop('AMZN', axis = 1)
colors = px.colors.qualitative.T10
# plotly
fig = px.line(df,
x = 'date',
y = [c for c in df.columns if c != 'date'],
template = 'plotly_dark',
color_discrete_sequence = colors,
title = 'Stocks',
)
# move legend
fig.layout.legend.x = -0.3
# add traces for annotations and text for end of lines
for i, d in enumerate(fig.data):
fig.add_scatter(x=[d.x[-1]], y = [d.y[-1]],
mode = 'markers+text',
text = d.y[-1],
textfont = dict(color=d.line.color),
textposition='middle right',
marker = dict(color = d.line.color, size = 12),
legendgroup = d.name,
showlegend=False)
fig.show()https://stackoverflow.com/questions/70327566
复制相似问题