我想删除一个记号和它的标签,而不是添加一个新的记号标签在一个不同的(但接近的)位置,而不是记号本身。我不知道该怎么做。文中给出了一个实例。在
import matplotlib.pyplot as plt
def main():
fig = plt.figure()
x = [1,2,3,4,5]
y = x
ax = fig.add_subplot(1,1,1)
y_ticks = ax.yaxis.get_major_ticks()
y_ticks[-1].label.set_visible(False)
ax.set_yticks([3.7], minor=True)
ax.set_yticklabels(["100"], minor=True)
ax.plot(x,y)
plt.show()
if __name__ == '__main__':
main()
这里留给我的是去掉y=3.5,3.7处的记号。在
另外,如您所见,我访问了y_ticks[-1]以将其标签设置为不可见。这是任意选择的,事实上,如果有人能解释为什么y峈ticks[-1]选择y=3.5处的tick,我将非常感激。在
谢谢
编辑:
正如两个答案中提到的,我将代码改为:
^{pr2}$这将产生下面的图,您可以看到y_ticks[5]
引用位于y=3.5
的tick,y_ticks[6]
指向位于{y=3.7
的记号。那么我怎样才能访问它,只删除勾号呢?
我只想解释一下如何去掉标签和标签。在
好吧,找到了答案。在
y=3.7
处添加的y记号被添加到短轴而不是长轴。因此我通过ax.tick_params(axis='y', which='minor', length=0)
访问它。但是,这将根据tick_params
设置所有次要刻度。在谢谢你的帮助
尝试
y_ticks[-1].set_visible(False)
而不是y_ticks[-1].label.set_visible(False)
。它使标签和记号标记都不可见。在编辑:
您可以使用
ax.yaxis.get_minor_ticks()
访问3,7
处的小勾号,如下代码所示:如果只想让
^{pr2}$100
附近的勾号消失,并且希望保留标签,请使用:而不是:
所有允许访问不同记号部分的函数都在
matplotlib.axis
documentation中描述。在发生的情况是:在创建轴之后,您将得到y记号的列表,而在您绘制任何轴之前,将得到y记号的列表。从坐标轴0.0到0.1的坐标轴列表都是从0.0到0.1的。在
然后,打印时,将添加更多的记号,并使用新标签更新列表中的记号。现在y轴刻度[]中的最后一项位于y轴的中间。在
解决方案:先绘图,然后
y_ticks = ax.yaxis.get_major_ticks()
。在相关问题 更多 >
编程相关推荐