1. 程式人生 > >python中matplotlib使用雙y軸的時候,只能顯示第二個曲線標誌怎麼辦?

python中matplotlib使用雙y軸的時候,只能顯示第二個曲線標誌怎麼辦?

       使用雙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="" />