从matplotlib图中删除特定的刻度

时间:2013-10-21 15:51:51

标签: python matplotlib

我正试图从下面的情节中删除原点蜱以阻止它们重叠,或者只是将它们彼此远离也会很好我试过这个:

enter image description here

xticks = ax.xaxis.get_major_ticks()
xticks[0].label1.set_visible(False)
yticks = ax.yaxis.get_major_ticks()
yticks[0].label1.set_visible(False)

然而,这样就从y轴上删除了第一个和最后一个刻度:

enter image description here

有没有人知道如何做到这一点?任何帮助将不胜感激。

编辑:添加了更多示例代码

import matplotlib
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
plt.xlabel(xlab)
plt.ylabel(ylab)
ax.spines["right"].set_color('none')
ax.xaxis.set_ticks_position('top')
ax.yaxis.set_ticks_position('left')
ax.spines["bottom"].set_color('none')
ax.xaxis.set_label_position('top')
ax.spines['left'].set_color('black')
ax.spines['top'].set_color('black')
ax.tick_params(colors='black')
xticks = ax.xaxis.get_major_ticks()
xticks[0].label1.set_visible(False)
yticks = ax.yaxis.get_major_ticks()
yticks[-1].label1.set_visible(False)
for x, y in all:
    ax.plot(x, y, 'ro')

3 个答案:

答案 0 :(得分:7)

你快到了。 y轴的原点位于底部。这意味着您要删除的标记位于顶部,是最后一个,即yticks[-1]

yticks[-1].set_visible(False)

答案 1 :(得分:7)

为什么不简单地做

ax.set_xticks(ax.get_xticks()[1:])
ax.set_yticks(ax.get_yticks()[:-1])

ax为轴对象。

答案 2 :(得分:1)

ax.xaxis.get_major_ticks()[0].draw = lambda *args:None
ax.yaxis.get_major_ticks()[-1].draw = lambda *args:None
相关问题