Python Matplotlib向条形图添加太多标签
我对pandas/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轴
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:谢谢-这确实为它的行为提供了一些澄清。