我试图绘制一些数据,主要的绘制信息是
True
问题是每个数据帧索引是整体的5%增量(即df1索引是df2的是0,5,10 ... 100),结果是该图试图在x-上填充40个标签轴
我尝试了几种不同的方法,但到目前为止都没有奏效。例如,尝试旋转标签并减小字体大小,例如:
ax1 = plt.errorbar(df1.index, df1['Mean'],
yerr=df1['SD'], color='black', linestyle='-')
ax2 = plt.errorbar(df2.index, df2['Mean'],
yerr=df2['SD'], color='grey', linestyle='-')
返回
plt.setp(ax1.get_xticklabels(), rotation='vertical', fontsize=7)
如果我尝试使用AttributeError: 'ErrorbarContainer' object has no attribute 'get_xticklabels'
来更改ax1和ax2的x轴,则会出现相同的错误
我认为可能是因为该图将x轴视为类别,但是我对如何解决它感到困惑?
理想情况下,我只想显示ax1和ax2的0%,25%,50%,75%和100%标签,但是现在我很乐意旋转它们,使它们看起来更好。
答案 0 :(得分:2)
问题是您使用的是errorbar
的图的句柄,而不是轴的句柄。有两种获取轴柄的方法:
plt.gca()
获取当前轴的手柄。一个例子:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.errorbar([0,1,2], [0,1,2], yerr=[.01,.05,.1])
ax.errorbar([0,1,2], [0,2,4], yerr=[.01,.05,.1])
plt.setp(ax.get_xticklabels(), rotation='vertical', fontsize=7)
plt.show()
这将导致:
如果要使用当前轴的手柄,也可以使用:
plt.setp(plt.gca().get_xticklabels(), rotation='vertical', fontsize=7)