2017-12-09 14 views
0

は、私は以下のコードを実行しようとした、TypeError例外は:</p> <p>コード:キーワード引数 '斧' のインナー()しまった複数の値を

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:インナー()ですキーワード引数 'ax'の複数の値)。私のコードに何が間違っていますか?

答えて

1

axplt.plot()の有効な引数ではありません。その理由は、plt.plot()plt.gca().plot()と同じ現在のアクティブな軸のplotメソッドを呼び出すためです。したがって、軸はすでにインスタンス自体によって与えられています。キーワード引数として再度指定することは意味をなさないので、最終的にはエラーが発生します。

解決策:plt.plot()の引数としてaxを使用しないでください。代わりに、

  1. 現在の軸にプロットするには、plt.plot(...)を呼び出します。現在の軸をplt.sca()、または
  2. の軸を直接呼び出すと、軸の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]) 
+0

ありがとうございます。 – Vanna

関連する問題