更改AxisArtist上的刻度数

问题描述 投票:0回答:1

我试图绘制像here这样的笛卡尔坐标轴:

enter image description 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'

我怎么能克服它?

python matplotlib axis axis-labels
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.