Plotly多X轴多Y轴绘图问题:仅显示一条迹线求助
Plotly双X双Y轴仅显示一条迹线的解决方法
问题出在你没有在布局中显式配置额外的X轴和Y轴,Plotly默认只会渲染主X轴(x)和主Y轴(y),其他未定义的轴对应的迹线会被隐藏。
修改后的代码如下:
import plotly.graph_objects as go data_x1 = [0, 1, 2, 3, 4, 6, 10] data_x2 = [0,10,20,30,40,60,100] data_y1 = [0, 3555, 6114, 7395, 8016, 9130, 8646] data_y2 = [1, 1.2, 1.18, 1.18, 1.22, 1.28, 1.52] fig = go.Figure() # 添加四条迹线并关联对应轴,添加name方便区分 fig.add_trace(go.Scatter(x=data_x1, y=data_y1, xaxis="x", yaxis="y", name="x1-y1")) fig.add_trace(go.Scatter(x=data_x1, y=data_y2, xaxis="x", yaxis="y2", name="x1-y2")) fig.add_trace(go.Scatter(x=data_x2, y=data_y1, xaxis="x2", yaxis="y", name="x2-y1")) fig.add_trace(go.Scatter(x=data_x2, y=data_y2, xaxis="x2", yaxis="y2", name="x2-y2")) # 配置布局,显式定义第二个X轴和Y轴 fig.update_layout( xaxis=dict(domain=[0, 0.9]), xaxis2=dict( anchor="y", side="top", overlaying="x", domain=[0, 0.9] ), yaxis=dict(domain=[0, 0.9]), yaxis2=dict( anchor="x", side="right", overlaying="y", domain=[0, 0.9] ), title="双X双Y轴绘图示例" ) fig.show()
关键说明:
- 必须在
update_layout中定义xaxis2和yaxis2,指定它们的锚定轴、显示位置和覆盖关系,Plotly才会渲染这些轴及对应的迹线。 - 你提到迹线1和3本应重叠,是因为
data_x2的每个值都是data_x1的10倍,且二者的y值均为data_y1,所以在对应比例的位置会完全重合,这是正常现象。
内容的提问来源于stack exchange,提问作者basil_man
相关产品推荐
相关产品推荐

