在matplotlib图中隐藏轴文本

问题:

我试图在任何一个轴上绘制没有标记或数字的数字(我使用传统意义上的轴,而不是matplotlib命名!)。我遇到的一个问题是,matplotlib通过减去值N来调整x(y)标记,然后在轴的末尾添加N。
这可能是模糊的,但以下简化示例突出显示了问题,“6.18”是N的有害值:

import matplotlib.pyplot as plt
import random
prefix = 6.18

rx = [prefix+(0.001*random.random()) for i in arange(100)]
ry = [prefix+(0.001*random.random()) for i in arange(100)]
plt.plot(rx,ry,'ko')

frame1 = plt.gca()
for xlabel_i in frame1.axes.get_xticklabels():
    xlabel_i.set_visible(False)
    xlabel_i.set_fontsize(0.0)
for xlabel_i in frame1.axes.get_yticklabels():
    xlabel_i.set_fontsize(0.0)
    xlabel_i.set_visible(False)
for tick in frame1.axes.get_xticklines():
    tick.set_visible(False)
for tick in frame1.axes.get_yticklines():
    tick.set_visible(False)

plt.show()

我想知道的三件事情是:

  1. 如何首先关闭这个行为(虽然在大多数情况下它是有用的,但并不总是!)我看过matplotlib.axis.XAxis,找不到任何适当的
  2. 如何使N消失(即X.set_visible(False)
  3. 有没有更好的方法去做上述?如果这是相关的,我的最终情节将是一个数字中的4×4子图。

回答:

您可以隐藏整个轴,而不是隐藏每个元素:

frame1.axes.get_xaxis().set_visible(False)
frame1.axes.get_yaxis().set_visible(False)

或者,您可以将勾号设置为空列表:

frame1.axes.get_xaxis().set_ticks([])
frame1.axes.get_yaxis().set_ticks([])

在第二个选项中,您仍然可以使用plt.xlabel()plt.ylabel()在轴上添加标签。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Hiding axis text in matplotlib plots

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

57 − = 54