You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Plotly的make_subplots中设置子图轴标签、范围及指定子图修改?

问题一:使用plotly.py通过make_subplots设置坐标轴标签与范围

在Plotly中,你可以通过fig.update_xaxes()和fig.update_yaxes()方法实现坐标轴标签与范围的设置,对应matplotlib里的ax.set_xlabel()和ax.set_xlim()。针对你的示例代码,修改如下:

import numpy as np
import plotly.graph_objects as go
from plotly.subplots import make_subplots

xv = np.linspace(0, 1, 99)
yv = 1-np.exp(-xv)

fig = make_subplots(rows=1, cols=1)

fig.add_trace(go.Scatter(x=xv, y=yv, mode='markers', name='Exp'), 
              row=1, col=1)

# 设置X轴标签和范围
fig.update_xaxes(title_text="X轴标签", range=[0, 1.2], row=1, col=1)
# 设置Y轴标签和范围
fig.update_yaxes(title_text="Y轴标签", range=[0, 1.1], row=1, col=1)

fig.show()

参数说明:

  • title_text:设置坐标轴显示标签
  • range:指定坐标轴的数值范围
  • row/col:指定要修改的子图位置(单张子图时可省略,显式指定更清晰)

问题二:修改3行3列布局中第二行第二列子图的坐标轴

针对3行3列的子图布局,只需在update_xaxes()和update_yaxes()中指定row=2, col=2,即可精准定位并修改目标子图的坐标轴属性。示例代码如下:

import numpy as np
import plotly.graph_objects as go
from plotly.subplots import make_subplots

# 创建3行3列的子图布局
fig = make_subplots(rows=3, cols=3)

# 给第二行第二列添加示例轨迹
xv = np.linspace(0, 5, 100)
yv = np.sin(xv)
fig.add_trace(go.Scatter(x=xv, y=yv, mode='lines', name='Sin'),
              row=2, col=2)

# 修改第二行第二列的X轴和Y轴
fig.update_xaxes(title_text="自定义X轴", range=[-1, 6], row=2, col=2)
fig.update_yaxes(title_text="自定义Y轴", range=[-1.2, 1.2], row=2, col=2)

# 给其他子图添加示例内容,方便查看效果
for i in range(1,4):
    for j in range(1,4):
        if i !=2 or j !=2:
            fig.add_trace(go.Scatter(x=[0,1], y=[0,1], mode='markers'), row=i, col=j)

fig.show()

通过row和col参数,你可以定位到任意行列的子图,单独修改其坐标轴的标签、范围、刻度等属性。

内容的提问来源于stack exchange,提问作者Ken Grimes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 14:55:24