如何在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
相关产品推荐
相关产品推荐

