更改 AxisArtist 上的刻度数

Change number of ticks on a AxisArtist

我正在尝试绘制笛卡尔轴,例如 here:

由于 yticks 重叠,我想减少它们的数量。我尝试了 this 方法。

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'

我该如何克服它?

mpl_toolkits.axes_grid.axislines 已弃用;改为从 mpl_toolkits.axisartist 导入。

添加 ax.set_yticks(np.linspace(-1, 1, 5)) 即可。

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

示例结果: