2016-11-30 9 views
2

私は異なるサブプロットで色付けしようとしています。サブプロット内のaxvspanが機能しない

マイコード:

f, (ax) = plt.subplots(1, 7 , sharey=True, figsize=(14,2)) 
color=['g','c','m','y','g','c','m'] 
for k in range(7): 
    ax[k].axvspan(0,100,facecolor=color[k], alpha = 0.3) 
    ax[k].plot(data[k]['x'], data[k]['y'], color=color[k]) 
    ax[k].set_xscale('log') 

エラーが発生しませんけれどもそれは、プロットではなく、着色を行います。私がset_xscale( 'log')をしないと、動作します。 提案?

答えて

2

最初の行にあるコンマを削除し、あなたのIDを修正してください。

次に、axvspanを作成する前にログスケールを設定してください。

f, (ax) = plt.subplots(1, 7 , sharey=True, figsize=(14,2)) 
color=['g','c','m','y','g','c','m'] 
for k in range(7): 
    ax[k].set_xscale('log') 
    ax[k].axvspan(0,100,facecolor=color[k], alpha = 0.3) 

enter image description here

あなたが背景を着色する方法を探している場合は、代わりにax[k].set_axis_bgcolor(color[k])を使用する必要があります。

また、axhspanを使用する方がよいでしょう。xに軸(相対)単位が使用されるためです。コードをコピーしながら、

ax[k].set_ylim(0,1) 
ax[k].set_xscale('log') 
ax[k].axhspan(0,1,facecolor=color[k], alpha = 0.3) 
+0

は昏睡状態と間違ったインデントはちょうどいい加減だったが、私は可能なエラーを発見し、私はあなたが見ていなかった場合には私の答えを更新し、質問 –

+0

を編集しました –