在python中使用图例绘制垂直线

时间:2019-06-03 02:33:57

标签: python python-3.x plotly

在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')

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

1 个答案:

答案 0 :(得分:1)

我认为目前唯一的选择是将其绘制为散点图。

例如此代码段

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

生成此结果:

enter image description here