我需要一些帮助来了解如何为绘图子图中同一行中的所有列共享多个 y_axis。我知道我可以通过添加“shared_yaxes =True”来共享 y_axis,但是,如何共享多个 y_axis。有 3 个 y_axis(时间 1、时间 2 和深度)在许多列之间共享,我想将时间 1 和时间 2 彼此相邻地放置在列的最开头,将深度 y 轴放置在末尾。 请看下图,这就是我想要的情节。 我在 StackOverflow 或 Plotly 社区上找不到任何类似的问题,并且在plotly 文档中找不到任何内容。 谢谢,感谢对此的任何帮助。
从你的图片来看
import numpy as np
import pandas as pd
import plotly.graph_objects as go
df = pd.DataFrame(
{
**{
"y1": pd.date_range("11-apr-2021", freq="2H", periods=100),
"y2": np.linspace(36, 95, 100),
"y3": np.linspace(17000, 19000, 100),
},
**{f"x{x}": np.random.uniform(0, 5, 100) for x in range(1, 8)},
}
)
go.Figure(
[
go.Scatter(x=df[x], y=df[y], yaxis=y, xaxis=x, name=x + y)
for x in df.columns
if x[0] == "x"
for y in np.random.choice([c for c in df.columns if c[0] == "y"], 1)
]
).update_layout(
**{
c.replace("x", "xaxis"): {
"domain": [max((int(c[1]) / 7) - 1 / 7, 0.05), int(c[1]) / 7]
}
for c in df.columns
if c[0] == "x"
}
).update_layout(
yaxis={"position": 0},
yaxis2={"position": 0.05, "overlaying": "y"},
yaxis3={"side": "right", "overlaying": "y", "position": 1},
)