我尝试运行以下代码:
代码:
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)
并且,它生成了错误(TypeError:inner()获得了关键字参数' ax')的多个值。我的代码有什么问题?
答案 0 :(得分:10)
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])