我想隐藏条形图的第一个和最后一个x轴刻度文本,即“2004”和“2013”。Matplotlib默认情况下会自动添加它们,即使我的数据集是从2005年到2012年,因此我希望在我的条形图中没有2004年和2013年。我正在寻找一些代码行来选择和隐藏这些刻度。有什么想法吗?
我想隐藏条形图的第一个和最后一个x轴刻度文本,即“2004”和“2013”。Matplotlib默认情况下会自动添加它们,即使我的数据集是从2005年到2012年,因此我希望在我的条形图中没有2004年和2013年。我正在寻找一些代码行来选择和隐藏这些刻度。有什么想法吗?
import sys, os
import matplotlib.pyplot as plt
path = sys.path[0]
sizes = [(12,3,), (4,3,)]
x = range(20)
for i, size in enumerate(sizes):
fig = plt.figure(figsize = size, dpi = 80, facecolor='white',edgecolor=None,linewidth=0.0, frameon=True, subplotpars=None)
ax = fig.add_subplot(111)
ax.plot(x)
plt.ylabel ('Some label')
plt.tight_layout()
make_invisible = True
if (make_invisible):
xticks = ax.xaxis.get_major_ticks()
xticks[0].label1.set_visible(False)
xticks[-1].label1.set_visible(False)
plt.show()
这个例子隐藏了第一个和最后一个X轴刻度。但是你可以很容易地添加检查你特殊刻度的功能。
xticks[0].set_visible(False)
和xticks[1].set_visible(False)
。 - Bikash Gyawali补充@DmitryNazarov的答案,如果你只想隐藏刻度标签,保持网格线可见,请使用以下方法:
ax = plt.gca()
ax.axes.xaxis.set_ticklabels([])
ax.axes.yaxis.set_ticklabels([])
pyplot.xticks(numpy.arange(0,31,1), [i if i in range(0,31,5) else '' for i in range(31)])