我试图理解这实际上意味着什么,但不能走得太远。
我玩下面的代码来理解它。如果我删除所有叠加参数,则只会出现第 4 个。如果我删除其中一个,则只有该轴可见。我无法对这种行为发表任何声明。和不,
如果设置了相同字母的轴 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()
Run Code Online (Sandbox Code Playgroud)
这是我删除所有“覆盖”参数时的结果演示。
还有一件事要注意,我已经看到多个散点跟踪在同一个图中并且没有提到那里的叠加。我知道这与轴有关,但也许我错过了一些关于当有多个轴时发生的事情的基本知识,甚至可能是轴重叠的含义?它甚至意味着什么?谢谢。
这是(我认为)它的工作方式。当您创建第二个轴(例如第二个 y 轴)时,您基本上会创建一个新的子图,该子图与具有第一个 y 轴的子图位于同一位置。
因此,只有第二个(或最后一个)子图可见。在您的情况下,这意味着当您删除overlaying参数时,您只会看到最后一个散点 - 附加到 y 轴 #4 的那个散点。但是 - 这不是您通常想要的。在大多数情况下,您希望所有重叠子图中的所有散点都可见。这就是您指定overlaying=参数的原因。它告诉情节不要“隐藏”较低的子图,而是使除底部的所有子图“透明”之外的所有子图 - 结果,所有子图都被覆盖并且可见。
希望这可以帮助。
关于overlay 的含义这里有很长的讨论。
顺便说一句 - 有人可能会问为什么不总是将所有内容都叠加起来。非覆盖也有一个用例:
| 归档时间: |
|
| 查看次数: |
1370 次 |
| 最近记录: |