小编Hal*_* II的帖子

Plotly:如何在子图中制作无界垂直线?

目标是在 x=1 的每个子图中获得垂直无限线。在这个例子中,我将在第一行第一列尝试一个 type="line" 的绘图形状

from plotly.subplots import make_subplots
import plotly.graph_objects as go
import numpy as np


fig = make_subplots(
    rows=2,
    cols=2,
    subplot_titles=list(map(str, range(4))),
    shared_xaxes=True,
    shared_yaxes=False,
)

time = np.linspace(-np.pi, np.pi, 1000)

for i in range(4):
    data = np.sin((i+1) * time)
    fig.add_trace(
        go.Scatter(y=data,x=time, name=str(i)),
        row=1 if i in [0, 1] else 2,
        col=1 if i in [0, 2] else 2,
    )

fig.add_shape(
    go.layout.Shape(
        type="line",
        yref="paper",
        xref="x",
        x0=1,
        y0=0,
        x1=1,
        y1=1,
        line=dict(color="RoyalBlue", width=3),
    ),row=1,col=1)

fig.write_image("1.png",width=800, height=600, scale=1)
Run Code Online (Sandbox Code Playgroud)

情节 1

所以看起来添加具有行和列的形状会覆盖 yref 和外部参照属性,返回一条线段而不是无限线。在打印前强制 yref …

python plot plotly plotly-python

5
推荐指数
1
解决办法
3024
查看次数

标签 统计

plot ×1

plotly ×1

plotly-python ×1

python ×1