如何动态调整plotly.graph_objects已生成图表的Y轴范围

上图通过以下代码生成:
import plotly.graph_objects as go candlestick = go.Candlestick(x=data.index, open=data.open, high=data.high, low=data.low, close=data.close, increasing_line_color='red', decreasing_line_color='green') fig = go.Figure(data=[candlestick]) fig.show()
问题
图表生成后可通过右上角的“Zoom in”“Zoom out”按钮调整X轴范围,但未找到Y轴调整入口。例如需要将Y轴最小值设为175、最大值设为177时,如何在图表生成后动态修改Y轴取值范围?
已知fig.update_yaxes(range=[175,177])可更新Y轴范围,但执行该命令需要重启程序,使用不便。
解答
Plotly原生支持图表生成后动态调整Y轴范围,完全不需要重启程序重跑代码,可根据使用场景选对应方式:
- 直接在已渲染的图表页面操作:
- 单独调整Y轴:将鼠标移动到Y轴刻度区域,等光标变为上下双向箭头时,滚动滚轮即可缩放Y轴,按住拖动可平移Y轴区间;也可以点击右上角齿轮形状的设置按钮,在「Axes」选项卡中选中Y轴,直接手动输入范围的最小值、最大值,设置后实时生效。
- 自定义区间缩放:按住鼠标左键在图表绘图区纵向/横向框选目标区间,松开后会自动缩放到框选的XY轴范围,双击绘图区即可重置回初始视图。
- 代码层面无需重启的更新方式:如果你在Jupyter Notebook/Lab、IPython等交互环境中运行代码,
fig对象会一直驻留内存,不需要重启内核,直接在新的单元格/命令行中执行fig.update_yaxes(range=[175,177]),图表会自动同步更新范围。
如果是运行本地py脚本弹出的浏览器窗口,本质是渲染完成的静态HTML页面,这种场景下直接用页面内置的鼠标/设置项调整Y轴即可,不需要修改代码重跑。
内容的提问来源于stack exchange,提问作者Brian
相关产品推荐
相关产品推荐

