如何在Matplotlib 3D坐标轴中关闭X轴主网格线?
解决Matplotlib 3D绘图中关闭X轴主网格线的通用方法问题
Matplotlib 3D绘图场景中,2D环境下有效的grid()通用轴方法无法正常关闭X轴主网格线,尝试grid_alpha=0.0、grid_linewidth=0.0这类参数也无效。如果不想使用xaxis这类特定轴方法或下划线开头的隐藏方法,可采用以下方案:
可行解决方案
使用tick_params()通用方法,通过gridOn关键字参数精准控制指定轴的主刻度网格线显示状态,完全符合通用带参方法的使用偏好。
修改后的测试代码
from matplotlib.figure import Figure import numpy as np test_fig = Figure() test_ax = test_fig.add_subplot(111, projection='3d') # 生成测试数据 _x = np.arange(4) _y = np.arange(5) _xx, _yy = np.meshgrid(_x, _y) x, y = _xx.ravel(), _yy.ravel() top = x + y bottom = np.zeros_like(top) width = depth = 1 test_ax.bar3d(x, y, bottom, width, depth, top, shade=True) # 替换原grid()调用,用tick_params关闭X轴主网格线 test_ax.tick_params(axis='x', which='major', gridOn=False) test_fig.savefig('test_figure.jpg')
说明
tick_params()在3D轴对象中支持gridOn参数,可通过axis指定目标坐标轴(x/y/z)、which指定刻度类型(major/minor/both),直接控制对应网格线的显示状态。该方法无需操作特定轴对象,也不用依赖隐藏方法,完全满足需求。
内容的提问来源于stack exchange,提问作者Python_Learner
相关产品推荐
相关产品推荐

