[Py] 利用 Matplotlib 繪製含有兩子圖表的圖

Matplotlib 是 Python 中很重要的一套繪圖工具,提供類似 Matlab 的繪圖指令,其實滿強大的,但一直以來都搞不懂他的畫圖邏輯,現在好像比較懂了所以分享一下應該怎麼做。首先我們要匯入 Matplotlib.pyplot 這個子模組,通常會把他簡寫成 plt:

接著就要創造容器了,根據我的感覺, matplotlib 的圖片架構大概是:

  • figure.figure() :把他比喻成書桌抽屜…
    • axes.axes() :抽屜整理盒的概念吧
      • 各種圖表的子模組如 Line2D , Text , errorbar , bar , fill, fill_between 等等。

所以繪圖的步驟會變成:

  1. 創造一個最上層的容器 figure 物件。

  2. 決定格局、子圖表數目,加入對應的 axes 物件,這些 axes 物件可以裝各種不同的圖表子模組,並分別調整每個的製圖內容。
  3. 在每一個 axes 物件中,放入圖表物件(繪製圖表)如長條圖(bar)、直線圖(plot() 或 Line2D)等等。
  4. 改變 axes 物件外觀。
  5. 用 plt.show() 或 fig.show() 將圖表顯示出來,完成!

關於圖例:

如果想加入圖例,最簡單的方法就是:

  1. 在創造圖表物件時,傳入「label」關鍵字( label=”…”)
  2. 全部物件繪製完成後,最後呼叫 axes.legend() 即可產生
  3. 小提示:如果想要動態移動圖例時,請使用 axes.legend() .draggable()  呼叫即可。

總結可見下圖:

示範如何利用 Matplotlib 繪製含有兩子圖表的方法
示範如何利用 Matplotlib 繪製含有兩子圖表的方法

請多多指教!

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料