首页 > 解决方案 > 更改 AxisArtist 上的刻度数

问题描述

我正在尝试像这里一样绘制笛卡尔轴:

在此处输入图像描述

由于重叠 yticks 我想减少它们的数量。我试过这种方法。

for n, label in enumerate(ax.axis[direction].get_ticklabels()):
    if n % 5 != 0:
        label.set_visible(False)

但它给出了一个错误:

'AxisArtist' object has no attribute 'get_ticklabels'

我怎样才能克服它?

标签: pythonmatplotlibaxisaxis-labels

解决方案


mpl_toolkits.axes_grid.axislines已弃用;mpl_toolkits.axisartist而是从导入。

添加ax.set_yticks(np.linspace(-1, 1, 5))会做。

如果要根据轴范围动态间隔刻度,可以使用ax.set_yticks(np.arange(*ax.axis()[2:], 0.5))(设置刻度之间的距离)或ax.set_yticks(np.linspace(*ax.axis()[2:], 5))(设置刻度数)。

示例结果:

示例结果


推荐阅读