首页 > 解决方案 > 在 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()

这将产生以下图表:

带标签的图表

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

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

无标签图表

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

这会产生以下图表: 无标签图表

我该怎么做才能让值“标签 1”出现在右侧的图例上?

标签: pythonpandaschartsplotly

解决方案


试试这个

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

在此处输入图像描述


推荐阅读