Python Matplotlib向条形图添加太多标签

Python Matplotlib向条形图添加太多标签,python,pandas,matplotlib,Python,Pandas,Matplotlib,我对pandas/matplotlib有点失望(不确定是谁的错)。如果我创建一个简单的随机序列并将其绘制为折线图,则格式非常清晰: test1 = pd.Series(index = pd.date_range(start='2000-06-30', end='2018-06-30', freq='3M'), data = np.random.rand(73)) test1.plot(kind='line') 非常满意。 但是,如果我将格式更改为bar,x轴

我对pandas/matplotlib有点失望(不确定是谁的错)。如果我创建一个简单的随机序列并将其绘制为折线图,则格式非常清晰:

test1 = pd.Series(index = pd.date_range(start='2000-06-30', end='2018-06-30', freq='3M'),
                 data = np.random.rand(73))
test1.plot(kind='line')

非常满意。 但是,如果我将格式更改为bar,x轴格式将在一个提篮中消失:

Matplotlib似乎觉得有义务给每一个酒吧贴上标签。这是一个合乎逻辑的原因还是一个简单的解决方案


提前感谢。

Matplotlib正在尝试将每次都用作自己的栏,并尝试适当地标记每个栏。要更改此行为,应更改
xticks
xticklabel
。例如,完全删除标签的一种快速方法是执行以下操作

subplot = test1.plot(kind='bar')
ax = subplot.axes
#ax.set_xticks([])       # Alternatively, you can manually adjust the ticks
ax.set_xticklabels([])   # or their labels
f = ax.get_figure()
f.show()
那会产生什么


您可以将记号的数量减少为类似于以相同的方式使用每个
n
th记号及其标签。

通过以条形图打印,可以将连续变量(时间)更改为离散变量。Matplotlib只是做了你要求它做的事情,也就是将每个时间单位表示为它自己的条形图——就图形而言,它不再是一个连续体,因此它对如何总结x轴的跨度没有任何直觉(因为现在没有跨度,只有类别)。请参阅以获取解决方案。只需设置
ax=test1.plot(kind='bar')
,就可以在您的案例中找到答案。@andrew\u reece:谢谢-这确实为它的行为提供了一些澄清。