2016-11-30 23 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('日誌'),那麼它的作品。 建議?

回答

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].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

我萬一你沒看到我的答案更新 –