python - 在 Plotly 中显示带一条线的折线图的图表标签

标签 python pandas charts plotly

我正在尝试显示只有一行的折线图,并且我希望该图表能够显示该行的标签/图例,就像有多行一样。

这是一个简单的示例:

带标签的图表

import pandas as pd
import numpy as np
import plotly.graph_objects as go

dates = pd.date_range(start='2020-01-01', periods=100)
random = np.random.RandomState(0)
random2 = np.random.RandomState(1)

data1  = random.random(100)
data2  = random2.random(100)

a_values = ['A' for i in range(100)]
b_values = ['B' for i in range(100)]

df1 = pd.DataFrame({
  'data': data1,
  'value': a_values
}, index=dates)

df2 = pd.DataFrame({
  'data': data2,
  'value': b_values
}, index=dates)

df = pd.concat([df1, df2])

fig = go.Figure()
fig.add_trace(go.Scatter(x=df.index, y=df[df.value == 'A']['data'], name='Label 1'))
fig.add_trace(go.Scatter(x=df.index, y=df[df.value == 'B']['data'], name='Label 2'))
fig.show()

这将产生以下图表:

Chart With Labels

我的问题是,即使只有一行,我也希望在图例中显示相同类型的标签。

如果我重新创建相同的图表,但只有一行,我将得到以下结果:

没有标签的图表

fig = go.Figure()
fig.add_trace(go.Scatter(x=df.index, y=df[df.value == 'A']['data'], name='Label 1'))
fig.show()

这会产生以下图表: Chart Without Labels

如何才能使值“标签 1”显示在右侧图例上?

最佳答案

试试这个

fig = go.Figure()
fig.add_trace(go.Scatter(x=df.index, y=df[df.value == 'A']['data'], name='Label 1'))
fig.update_layout(showlegend=True)
fig.show()

enter image description here

关于python - 在 Plotly 中显示带一条线的折线图的图表标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63675231/

相关文章:

javascript - Google 可视化库加载会产生两个不同的结果

python - 从字典中的字典中获取键

python - 如何加载带有自定义损失的模型?

python - 如何将具有 NULL 值的 panda 列转换为 int?

javascript - 如何将数百个 JS 对象属性放入数组中以用作 Chart.js 轴/数据

javascript - 在同一页面中使用图表和小部件

python - 找出一个单词中的一半字母是否是元音

python - Pandas - 按索引 ID 合并两个数据帧

python - 如何在 DataFrame 中将单词与数字相乘?

python - Pandas - 从其中一列将列添加到基于 Dict 的 DataFrame