我有一個有2個y軸的圖,每個對應一組線。實線對應於左側的y軸,而虛線對應於右側的y軸。我也有一個圖例,我希望它只使用實線作爲鍵,因爲虛線具有相同的標籤,具體取決於它們的顏色。
問題是當我爲實線繪製圖例,然後是虛線代碼時,網格線顯示的是圖例。我需要爲兩個軸指定網格線,因爲它們不會以其他方式顯示,並且如果將圖例移動到虛線,則會將虛線用作關鍵點。我也不想改變我的繪圖順序。
代碼和情節
#Plot
x= np.arange(0,3)
fig,ax = plt.subplots(figsize=(6,6))
#DOD
dod1 = ax.plot(x, ctrl_dod, color='r', label='CTRL' )
dod2 = ax.plot(x, mfkc_dod, color='#e68a00', label='MFKC' )
dod3 = ax.plot(x, gses_dod, color='green', label='GSES' )
dod4 = ax.plot(x, gses3_dod, color='blue', label='GSES-3')
dod5 = ax.plot(x, gses4_dod, color='purple', label='GSES-4')
dod6 = ax.plot(x, mera_dod, color='brown', label='MERRA2')
ax.xaxis.grid(True)
ax.set_ylim([0.02,0.044])
ax.set_yticks(np.arange(0.02,0.045,0.004))
ax.set_xlabel('Month')
ax.set_ylabel('Dust Optical Depth (550 nm)')
ax.set_title('Global Mean DOD and DCM')
legend = ax.legend()
legend.get_frame().set_facecolor('white')
#DCM
ax2 = ax.twinx()
dcm1 = ax2.plot(x, ctrl_dcm*1e6, color='r', linestyle='--', label='CTRL' )
dcm2 = ax2.plot(x, mfkc_dcm*1e6, color='#e68a00', linestyle='--', label='MFKC' )
dcm3 = ax2.plot(x, gses_dcm*1e6, color='green', linestyle='--', label='GSES' )
dcm4 = ax2.plot(x, gses3_dcm*1e6, color='blue', linestyle='--', label='GSES-3')
dcm5 = ax2.plot(x, gses4_dcm*1e6, color='purple', linestyle='--', label='GSES-4')
dcm6 = ax2.plot(x, mera_dcm*1e6, color='brown', linestyle='--', label='MERRA2')
ax2.xaxis.grid(True)
ax2.yaxis.grid(True)
ax2.set_xlabel('Month')
ax2.set_ylabel('Dust Column Mass (mg m-2)')
#Limits
axes = plt.gca()
axes.set_xlim([-0.25,2.25])
#Labels
axes.set_xticks(x)
axes.set_xticklabels(['June','July','August'])
#Save
pylab.savefig('dod+dcm.png')
問題
我怎樣才能
一)有傳說鍵用實線和
b)有傳說不透明白色的背景嗎?
「有圖例按鍵使用實線」 - 圖像中的圖例按鍵已經是實線,對嗎? –
我不明白「我需要爲這兩個軸指定網格線,因爲它們不會顯示出來」。只使用ax.grid()而不顯示ax2的網格應直接解決問題。如果沒有,我們需要問題的[mcve]。 – ImportanceOfBeingErnest
重要性 - 好吧,實際上這個特定的例子適用於軸匹配。但是,昨天我的左右軸有不同的網格線,這就是爲什麼我需要爲ax和ax2設置yaxis.grid(True)的原因。如果網格不匹配,那麼對其他人也可能有幫助。 – ChristineB