我正在尝试在任一轴上绘制一个没有刻度线或数字的图形(我使用传统意义上的轴,而不是 matplotlib 命名法!)。我遇到的一个问题是 matplotlib 通过减去值 N 来调整 x(y)ticklabels,然后在轴的末端添加 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()
我想知道的三件事是:
首先如何关闭此行为(尽管在大多数情况下它很有用,但并非总是如此!)我已经查看了
matplotlib.axis.XAxis
并且找不到任何合适的如何让 N 消失(即
X.set_visible(False)
)有没有更好的方法来完成上述操作?如果相关的话,我的最终图将是图中的 4x4 子图。
原文由 Dave 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以隐藏整个轴,而不是隐藏每个元素:
或者,您可以将刻度设置为空列表:
在第二个选项中,您仍然可以使用
plt.xlabel()
和plt.ylabel()
向轴添加标签。