plotly的layout.axis对象的overlaying参数是什么意思?

问题描述 投票:0回答:1

我试着去理解这到底是什么意思,但无法深入理解。

我用下面的代码来理解它。如果我删除所有的叠加参数,只有第四个参数会出现。如果我删除其中一个参数,那么只有那个轴是可见的。我无法对这种行为做出任何声明。而且没有。

如果设置一个同字轴id,则该轴叠加在相应的同字轴之上,两个轴的轨迹和轴线都可见。如果为 "False",则此轴不叠加任何同字轴。在这种情况下,对于具有重叠域的轴,只有编号最高的轴才会可见。

文档中也没给我说什么。谁能解密一下这个解释?谢谢。

import plotly.graph_objects as go

fig = go.Figure()

fig.add_trace(go.Scatter(
    x=[1, 2, 3],
    y=[4, 5, 6],
    name="yaxis1 data"
))


fig.add_trace(go.Scatter(
    x=[2, 3, 4],
    y=[40, 50, 60],
    name="yaxis2 data",
    yaxis="y2"
))

fig.add_trace(go.Scatter(
    x=[4, 5, 6],
    y=[40000, 50000, 60000],
    name="yaxis3 data",
    yaxis="y3"
))

fig.add_trace(go.Scatter(
    x=[5, 6, 7],
    y=[400000, 500000, 600000],
    name="yaxis4 data",
    yaxis="y4"
))


# Create axis objects
fig.update_layout(
    xaxis=dict(
        domain=[0.3, 0.7]
    ),
    yaxis=dict(
        title="yaxis title",
        titlefont=dict(
            color="#1f77b4"
        ),
        tickfont=dict(
            color="#1f77b4"
        )
    ),
    yaxis2=dict(
        title="yaxis2 title",
        titlefont=dict(
            color="#ff7f0e"
        ),
        tickfont=dict(
            color="#ff7f0e"
        ),
        anchor="free",
        overlaying="y",
        side="left",
        position=0.15
    ),
    yaxis3=dict(
        title="yaxis3 title",
        titlefont=dict(
            color="#d62728"
        ),
        tickfont=dict(
            color="#d62728"
        ),
        anchor="x",
        overlaying="y",
        side="right"
    ),
    yaxis4=dict(
        title="yaxis4 title",
        titlefont=dict(
            color="#9467bd"
        ),
        tickfont=dict(
            color="#9467bd"
        ),
        anchor="free",
        overlaying="y",
        side="right",
        position=0.85
    )
)

# Update layout properties
fig.update_layout(
    title_text="multiple y-axes example",
    width=800,
)

fig.show()

下面是我删除所有 "重叠 "参数后的结果演示。example result when the overlaying parameters are deleted还有一点要注意的是,我见过多个散点轨迹在同一个图中,但那里没有提到叠加。我知道这与轴有关,但也许我错过了一些基本的知识,当有多个轴时发生了什么,甚至可能是轴的叠加的意义?它到底是什么意思?谢谢,我试着理解这到底是什么意思。

python plotly
1个回答
1
投票

这是工作方式(我认为)。当您创建第二个轴(例如第二个Y轴)时,您基本上创建了一个新的子图,该子图被渲染为 同地 作为第一个y轴的子图。

因此,只有第二个(或最后一个)子图是可见的。在您的情况下,这意味着当您删除了 overlaying 参数,你只能看到最后一个散点--连接到 y 轴 #4 的那个。但是--这不是你通常想要的。在大多数情况下,你希望所有的散点,从所有重叠的子图中,都能看到。这就是为什么您指定了 overlaying= 参数,它告诉 plotly 不要 "隐藏 "下层的子图,而是让所有子图(除了最下面的一个)都 "透明"--结果,所有的子图都被叠加起来,可见。它告诉 plotly 不要 "隐藏 "下层的子图,而是让所有的子图(除了最下面的那个)都 "透明"--结果,所有的子图都被叠加了,而且是可见的。

希望这对你有帮助。

关于叠加的含义,有一个很长的讨论。此处.

另外--有人会问为什么不把所有的东西都叠加起来,总是这样。不叠加也是有用处的。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.