使用Python绘制带有图例的Plotly垂直线

5
在 Plotly 网站上,有一个示例可以使用 shape 函数在 Plotly 中添加竖直或水平线。
import plotly.plotly as py
import plotly.graph_objs as go

trace0 = go.Scatter(
    x=[2, 3.5, 6],
    y=[1, 1.5, 1],
    mode='text',
)
data = [trace0]
layout = {
    'xaxis': {
        'range': [0, 7]
    },
    'yaxis': {
        'range': [0, 2.5]
    },
    'shapes': [
        # Line Horizontal
        {
            'type': 'line',
            'x0': 2,
            'y0': 2,
            'x1': 5,
            'y1': 2,
            'line': {
                'color': 'rgb(50, 171, 96)',
                'width': 4,
                'dash': 'dashdot',
            }
        }
    ]
}

fig = {
    'data': data,
    'layout': layout,
}

py.iplot(fig, filename='shapes-lines')

但我想知道是否有方法为水平线添加图例。


但是我需要的是垂直线的图例。 - Jim Chen
请参考下面的例子。谢谢。 - Mike_H
3
这真的是重复吗?原帖想要的是形状的“图例”,而不是形状本身。你提供的帖子包括一条垂直线来显示指定组的中位数。正如你所看到的,中位数并没有在图例中包含。 - vestland
1个回答

2
我认为目前唯一的选择是将其作为散点图跟踪。

例如,以下代码片段:
import plotly.graph_objects as pgo
fig = pgo.Figure()

fig.add_traces([
    pgo.Scatter(
        x=[2, 3.5, 6],
        y=[1, 1.5, 1],
        name='Yet Another Trace'
    ), 
    pgo.Scatter(
        x=[2,5],
        y=[2,2], 
        line={
            'color': 'rgb(50, 171, 96)',
            'width': 4,
            'dash': 'dashdot',
        }, name='Horizontal Line'
    )
])

fig.update_layout(**{
    'xaxis': {
        'range': [0, 7]
    },
    'yaxis': {
        'range': [0, 2.5]
    }
})

fig

生成以下结果:

在此输入图像描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接