更改AxisArtist的刻度数

时间:2019-03-28 22:37:22

标签: python matplotlib axis axis-labels

我正在尝试绘制here之类的笛卡尔轴:

enter image description here

由于ytick重叠,我想减少它们的数量。我尝试了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'

我该如何克服?

1 个答案:

答案 0 :(得分:1)

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))(设置刻度线的数量)。

示例结果:

Example result