Plotly scene配置下x轴nticks参数未生效问题咨询
问题原因
- Plotly 坐标轴默认
tickmode为auto,该模式下nticks仅为刻度数量的参考建议值,而非强制约束,底层逻辑会优先选择整数值、易读的步长生成刻度,可能会忽略你设置的nticks数值。 - 你的y轴范围624、z轴范围09,跨度除以9(10个刻度对应9个间隔)刚好得到整数步长,符合Plotly自动刻度的选择逻辑,所以配置刚好生效;而x轴范围-3~24,自动计算时没有匹配到符合预期的步长,所以nticks设置失效。
解决方法
方法1:显式指定步长(最稳妥)
直接计算x轴需要的步长,通过dtick参数强制设置,同时指定tickmode='linear'即可强制生效:
# 计算步长:(最大值-最小值)/(刻度数-1) x_dtick = (b_max[0] - b_min[0]) / (n_vertices[0] - 1) figure.update_layout(scene={ 'xaxis': {'tickmode': 'linear', 'dtick': x_dtick, 'range': [b_min[0], b_max[0]]}, 'yaxis': {'nticks': n_vertices[1], 'range': [b_min[1], b_max[1]]}, 'zaxis': {'nticks': n_vertices[2], 'range': [b_min[2], b_max[2]]} })
方法2:手动指定所有刻度值(100%可控)
如果需要刻度完全符合你的预期,直接生成刻度列表传入tickvals即可:
import numpy as np x_ticks = np.linspace(b_min[0], b_max[0], n_vertices[0]) figure.update_layout(scene={ 'xaxis': {'tickvals': x_ticks, 'range': [b_min[0], b_max[0]]}, 'yaxis': {'nticks': n_vertices[1], 'range': [b_min[1], b_max[1]]}, 'zaxis': {'nticks': n_vertices[2], 'range': [b_min[2], b_max[2]]} })
原问题效果图

内容的提问来源于stack exchange,提问作者Cookie
相关产品推荐
相关产品推荐

