我试着运行以下代码:
码:
df1=pd.read_excel('F:/MRCS_New_struture/2. EHM_Vanna/2015 Reports/Statistic_Env.xlsx', sheetname='Daitom (2)', header=0, index_col='Year')
CaAB=df1.iloc[:5,17:34]; print CaAB
a=[2007, 2008, 2011, 2013, 2015]
b=[100,200,300,500,22.33]
fig, ax=plt.subplots(2,1)
plt.plot(a, b, 'go-', label='line 1', linewidth=2, ax=ax)
plt.xticks(a, map(str,a))
CaAB.plot(kind='bar', ax=ax)
Run Code Online (Sandbox Code Playgroud)
并且,它生成了错误(TypeError:inner()获得了关键字参数'ax'的多个值).我的代码出了什么问题?
Imp*_*est 12
ax不是一个有效的论据plt.plot().原因是plt.plot()将调用plot当前活动轴的方法,如同plt.gca().plot().因此轴已经由实例本身给出.再次提供它作为关键字参数没有任何意义,最终产生错误.
解决方案:不要ax用作参数plt.plot().代替,
plt.plot(...)绘制当前轴.用plt.sca(),或设置当前轴plot()轴的方法.ax.plot(...)请注意,在问题的例子中,ax不是轴.如果这令人困惑,请用不同的名称命名,
fig, ax_arr = plt.subplots(2,1)
ax_arr[0].plot(a, b, 'go-', label='line 1', linewidth=2)
ax_arr[0].set_xticks(a)
ax_arr[0].set_xticklabels(list(map(str,a)))
df.plot(kind='bar', ax=ax_arr[1])
Run Code Online (Sandbox Code Playgroud)