我尝试运行以下代码:
代码:
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'获得了多个值)。我的代码有什么问题?
最佳答案
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])
关于matplotlib - TypeError : inner() got multiple values for keyword argument 'ax' ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47726982/