python中matplotlib使用雙y軸的時候,只能顯示第二個曲線標誌怎麼辦?
阿新 • • 發佈:2019-02-10
使用雙y軸的時候,只能顯示第二個曲線標誌怎麼辦?
原因:
只顯示右邊一個label,是因為在windows中legend()函式只選取當前活動的ax2。
方法:
在第二個Y 軸之前,即可用ax1.legend()語句把當前軸的標誌顯示。第二個軸之後再用類似的語句即可。測試程式碼如下
更多方法:
import numpy as np import matplotlib.pyplot as plt # Make some fake data. a = b = np.arange(0, 3, .02) c = np.exp(a) d = c[::-1] _,ax1=plt.subplots() ax2 = ax1.twinx() # Create plots with pre-defined labels. ax1.plot(a, c, 'k--',label='Model length') ax1.plot(a, d, 'r', label='Data length') # 這裡先把地一個曲線標誌顯示了 ax1.legend(loc='upper left', shadow=True, fontsize='large') ax2.plot(a, c + d, 'g', label='Total message length') #接著再顯示第二個 ax2.legend(loc='upper right', shadow=True, fontsize='x-large') plt.show() <img src="https://img-blog.csdn.net/20161025154609381?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />