def month(num):
# returns month name based on month number
num_elements = len(x)
X_Tick_List = []
X_Tick_Label_List=[]
for item in range (0,num_elements):
X_Tick_List.append(x[item])
X_Tick_Label_List.append(month(item+1))
plt.xticks(ticks=X_Tick_List,labels=X_Tick_LabeL_List, rotation=25,fontsize=8)
4条答案
按热度按时间1yjd4xko1#
我在使用子图时遇到了同样的错误。我注意到,如果重新标记的轴(在我的情况下是y轴)显示所有标签,错误就会消失。如果没有,则会显示您标记的错误。我建议增加图表高度,直到默认情况下显示所有y轴标签(请参见下面的屏幕截图)。
或者,我建议使用
ax.set_xticks(...)
定义FixedLocator
价格点位置,然后使用ax.set_xticklables(...)
设置标签。Ever 2nd y-axis label drawn
Every y-axis label drawn and over-written with custom labels
ppcbkaq52#
我也偶然发现了这个错误,并发现让你的xtick_labels和xticks都成为一个等长的列表是有效的。
oxalkeyp3#
这个问题似乎有点老,但我刚才偶然发现了一个类似的问题:在更新到matplotlib版本3.2.2之后,我的
ax.set(xticklabels=..., xticks=...)
行也出现了同样的错误,在此之前,它一直工作正常。轴的
set
方法似乎根据set
的参数顺序调用其他方法。在较早的matplotlib版本中,在解包set-arguments之后,似乎存在某种排序。重新排列参数的顺序,首先设置新的xticks数,这样就解决了我的问题:
ax.set(xticks=..., xticklabels=...)
eqqqjvef4#
当matplotlib无法在gist中打包列名时会发生这种情况。以前我有5列,这还可以,下次我有100+列,这会导致错误。
行中出错:
g.set_xticklabels(df['code'], rotation=15, fontdict={'fontsize': 16})