我试着去理解这到底是什么意思,但无法深入理解。
我用下面的代码来理解它。如果我删除所有的叠加参数,只有第四个参数会出现。如果我删除其中一个参数,那么只有那个轴是可见的。我无法对这种行为做出任何声明。而且没有。
如果设置一个同字轴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()
下面是我删除所有 "重叠 "参数后的结果演示。还有一点要注意的是,我见过多个散点轨迹在同一个图中,但那里没有提到叠加。我知道这与轴有关,但也许我错过了一些基本的知识,当有多个轴时发生了什么,甚至可能是轴的叠加的意义?它到底是什么意思?谢谢,我试着理解这到底是什么意思。
这是工作方式(我认为)。当您创建第二个轴(例如第二个Y轴)时,您基本上创建了一个新的子图,该子图被渲染为 同地 作为第一个y轴的子图。
因此,只有第二个(或最后一个)子图是可见的。在您的情况下,这意味着当您删除了 overlaying
参数,你只能看到最后一个散点--连接到 y 轴 #4 的那个。但是--这不是你通常想要的。在大多数情况下,你希望所有的散点,从所有重叠的子图中,都能看到。这就是为什么您指定了 overlaying=
参数,它告诉 plotly 不要 "隐藏 "下层的子图,而是让所有子图(除了最下面的一个)都 "透明"--结果,所有的子图都被叠加起来,可见。它告诉 plotly 不要 "隐藏 "下层的子图,而是让所有的子图(除了最下面的那个)都 "透明"--结果,所有的子图都被叠加了,而且是可见的。
希望这对你有帮助。
关于叠加的含义,有一个很长的讨论。此处.
另外--有人会问为什么不把所有的东西都叠加起来,总是这样。不叠加也是有用处的。