Python是一種強大的編程語言,擁有豐富的庫和模塊,其中最常用的就是matplotlib庫。使用matplotlib庫,我們可以輕松地畫出各種各樣的圖表,比如折線圖、柱狀圖、散點圖等,同時還能將它們重疊在一次圖表中。
要畫出重疊圖,我們需要將每個子圖繪制在同一個大圖中。幸運的是,matplotlib已經為我們提供了這個功能,我們只需要使用figure對象的add_subplot方法來添加子圖即可。
import matplotlib.pyplot as plt import numpy as np # 生成數據 x = np.linspace(0, 10, 100) y1 = np.sin(x) y2 = np.cos(x) y3 = np.tan(x) # 創建figure對象 fig = plt.figure() # 添加子圖1 ax1 = fig.add_subplot(111) ax1.plot(x, y1, label="sin") # 添加子圖2 ax2 = fig.add_subplot(111, sharex=ax1, frameon=False) ax2.plot(x, y2, label="cos") # 添加子圖3 ax3 = fig.add_subplot(111, sharex=ax1, frameon=False) ax3.plot(x, y3, label="tan") # 設置圖例 lines, labels = ax1.get_legend_handles_labels() lines2, labels2 = ax2.get_legend_handles_labels() lines3, labels3 = ax3.get_legend_handles_labels() ax3.legend(lines + lines2 + lines3, labels + labels2 + labels3, loc="upper right") # 顯示圖表 plt.show()
在其中一個子圖中添加其他子圖時,我們需要設置相同的x軸,因此我們在添加子圖時使用了sharex參數。此外,還需要關閉子圖邊框(frameon=False)。
最后,我們將每個子圖的圖例合并成一個整體,方便查看。
通過這種方式,我們可以輕松地畫出多個圖表在同一張大圖中的效果。
下一篇css中的內縮