Matplotlib如何繪製多個子圖

2021-01-11 騰訊網

Python大數據分析

記錄 分享 成長

作者:雪山飛豬

博客地址:

https://www.cnblogs.com/chenqionghe/p/12355018.html

說明:本文經作者授權轉載,禁止二次轉載

Matplotlib是Python的底層繪圖工具,可定製性很強,很多人剛開始使用Matplotlib時,不明白一些基礎概念,比如figure和axis的區別?如何繪製多個子圖的圖表?這次寫個小短文來講一講。

fig和axis的區別?

相信不少小夥伴一開始都是直接用來繪圖,非常簡單,但這是偷懶的做法,不建議大家這樣。

是比較正統的畫法(參數代表行列數),指定figure和axes,然後對axes單獨進行操作(圖表元素增加和修改)。

fig相當於是一個大的畫布,ax相當於是小的子圖,一個畫布可以有一個或多個子圖。

單個圖表任何操作都是在axes對象上進行的,包括坐標軸、刻度、圖例等。

具體怎麼用,下面講到。

繪製多子圖

使用Matplotlib繪圖單圖相對比較容易,但有時候需要將多張圖放在一張圖表裡,這就用到子圖操作。

對應的有plt的subplot和figure的add_subplot的方法,參數可以是一個三位數字(例如111),也可以是一個數組(例如[1,1,1]),3個數字分別代表:

子圖總行數

子圖總列數

子圖位置

以下三種方式效果一樣,呈現的可視化圖表如下:

「方式一:通過plt的subplot」

「方式二:通過figure的add_subplot」

「方式三:通過plt的subplots」subplots返回的值的類型為元組,其中包含兩個元素:第一個為一個畫布,第二個是子圖

繪製不規則子圖

前面的兩個圖佔了221和222的位置,如果想在下面只放一個圖,得把前兩個當成一列,即2行1列第2個位置。

加入我們的知識星球【Python大數據分析】

愛上數據分析!

相關焦點

  • matplotlib如何實現圖形繪製在tkinter的Canvas中?
    matplotlib如何實現圖形繪製在tkinter的Canvas中?今天番茄加速就來分享一下。下面就是最重要的tkinter和matplotlib集成部分,matplotlib提供FigureCanvasTkAgg對象,只需三行代碼,實現圖形繪製在tkinter的Canvas中:canvas_l = FigureCanvasTkAgg(figure_l, frame_l)# 用draw代替canvas_l.draw()canvas_l.get_tk_widget
  • 使用Matplotlib繪製堆積條形圖
    在本文中,我們將探討如何使用Python的Matplotlib構建這些可視化圖形。我將使用一個簡單的數據集來保存全球的遊戲副本的銷售數據(雖然這個數據集已經過時,但它適合我們的示例)。import numpy as npimport pandas as pdimport matplotlib.pyplot as pltdf = pd.read_csv('../data/vgsales.csv')df.head()我們接下來要將平臺和地區的銷售情況可視化。
  • 如何用matplotlib繪圖呢?
    什麼是matplotlib?使用過python做數據分析的小夥伴都知道,matplotlib是一款命令式、較底層、可定製性強、圖表資源豐富、簡單易用、出版質量級別的python 2D繪圖庫。matplotlib算是python繪圖的元老級庫,類似程式語言裡的C語言。很多其它的python繪圖庫是基於matplotlib開發的,比如seaborn、ggplot、plotnine、holoviews、basemap等。matplotlib可用於python腳本、python shell、jupyter notebook、web等。
  • 看了這個總結,其實 Matplotlib 可視化,也沒那麼難!
    Matplotlib 可用於創建高質量的圖表和圖形,也可以用於繪製和可視化結果。matplotlib 是 Python 優秀的數據可視化第三方庫,matplotlib.pyplot 是繪製種類可視化圖形的命令子庫,相當於快捷方式 import matplotlib.pyplot as plt.
  • Python 繪圖庫 Matplotlib 入門教程
    關於如何安裝Matplotlib請參見這裡:Matplotlib Installing。很顯然,繪製出來的值對應了圖中的縱坐標(y軸)。而matplotlib本身為我們設置了圖形的橫坐標(x軸):[0, 100],因為我們剛好有100個數值通過plt.show()將這個圖形顯示出來這段代碼非常的簡單,運行起來也是一樣。
  • matplotlib繪圖的核心原理講解
    作者:朱小五來自:凹凸數據(ID:alltodata)matplotlib是基於Python語言的開源項目,旨在為Python提供一個數據繪圖包。相信大家都用過它來數據可視化,之前我還分享過25個常用Matplotlib圖的Python代碼。可是你了解過它繪圖的核心原理嗎?
  • 見識matplotlib:不常見的一面,折線圖!
    各種各樣的畫圖包猶如各式各樣的兵器,有的兵器功能單一但是在細分領域超級專業無敵,有的兵器功能多而全,用法靈活。眾所周知,matplotlib是python繪圖的基礎包,能夠生成各種各樣2D或者3D的圖形,用法算是多而全的那種,下邊是matplotlib官網首頁作為例子的幾張圖,大家感受一下:什麼?醜拒?不不不,別激動!
  • python matplotlib畫圖教程學習:使用介紹
    本篇文章介紹matplotlib包使用時,需要掌握的一些基本概念。除了圖中顯示的紅藍線型圖和散點圖,matplotlib還能繪製柱形圖、燭型圖、餅圖、3D圖形等等各種個性化圖形,將在後續文章一一介紹。matplotlib圖形的幾個主要對象:Figure對象整個圖形即是一個Figure對象。Figure對象至少包含一個子圖,也就是Axes對象。
  • matplotlib的Python數據可視化和探索——入門指南
    Matplotlib可用於Python腳本,Python和IPython外殼,Jupyter筆記本,Web應用程式伺服器以及四個圖形用戶界面工具包。」您可以使用matplotlib繪製各種圖表和可視化效果。在本教程中,我將探索matplotlib Python庫中最常見的圖。我們將首先了解手頭的數據集,然後開始使用matplotlib構建不同的圖,包括散點圖和折線圖!
  • Matplotlib庫繪製直方圖
    繪製直方圖直方圖由豎立在x軸上的多個相鄰的矩形組成,這些矩形把x軸拆分為一段段彼此不重疊的線段(線段兩個端點所標識的數據範圍也叫面元),矩形的面積跟落在其所對應的面元的元素數量成正比。pyplot用於繪製直方圖的函數為hist( ),該函數具有一個其他繪圖函數所沒有的功能。它除了繪製直方圖外,還以元組形式返回直方圖的計算結果。事實上,hist( )函數還可以實現直方圖的計算。
  • 30分鐘入門 Matplotlib 繪圖
    Matplotlib是一個主要用於繪製二維圖形的Python庫。
  • 這麼用MatPlotLib視覺化呈現數據,你值得擁有!
    conda install PackageName對於Matpotlib工具:conda install matplotlib不同類型的Matpolotlib工具提供的功能不同:1. 線、條、標誌2. 圖像、輪廓、場3. 餅狀圖、極坐標圖4. 統計性繪圖以及許多其它功能。
  • Python使用matplotlib繪製隨機漫步圖
    隨機漫步在本節中,我們將使用Python生成隨機漫步數據,再使用matplotlib以引入矚目的方式將這些數據呈現出來。隨機漫步是這樣行走得到的路徑:每次行走都完全隨機的,沒有明確的方向,結果是由一系列隨機決策決定的。
  • Matplotlib新版本3.1發布,新功能介紹
    範例程序(基於Jupyter環境,下同)%matplotlib inlineimport datetimeimport matplotlib.pyplot as pltimport matplotlib.dates as mdatesimport numpy as npbase = datetime.datetime
  • 手把手教你用Matplotlib進行數據可視化
    http://matplotlib.org就像我們用縮寫np來表示NumPy一樣,我們也會用一些標準的縮寫來表示Matplotlib導入:import matplotlib as mpl   import matplotlib.pyplot as plt plt是我們最常用的一個接口。
  • Matplotlib繪圖|快速定義圖表樣式的小技巧
    參數是以字典鍵值對的形式聲明,格式如下matplotlib.rcParams['lines.linewidth'] = 2matplotlib.rcParams['lines.linestyle'] = '--'在創建圖表之前,對全局參數進行設定,設定好了之後可以應用到全部圖表中,不需要自己再進行逐一設置mpl.rcParams['lines.linewidth']
  • Matplotlib數據可視化:餅圖與箱線圖
    from matplotlib import pyplot as plt import numpy as np import matplotlib as mpl mpl.rcParams['font.sans-serif
  • Python中利用Matplotlib繪製多圖並合併展示
    plt.figure(1):表示取第一塊畫板,通俗地講,一個畫板就是一張圖,如果你有多個畫板,那麼最後就會彈出多張圖。plt.subplot(221):221表示將畫板劃分為2行2列,然後取第1個區域。那麼第幾個區域是怎麼界定的呢?這個規則遵循行優先數數規則!比如說4個區域:
  • 未明學院:Python可視化庫Matplotlib繪圖入門詳解
    Matplotlib是Python的繪圖庫,其中的pyplot包封裝了很多畫圖的函數。Matplotlib.pyplot 包含一系列類似 MATLAB 中繪圖函數的相關函數。事實上,如果傳入的是列表,matplotlib 會在內部將它轉化成數組再進行處理:5、子圖figure() 函數會產生一個指定編號為 num 的圖:plt.figure(num)這裡,figure(1) 其實是可以省略的,因為默認情況下 plt 會自動產生一幅圖像。
  • 基於Python的圖表繪圖系統matplotlib,「動態條形圖」你了解嗎?
    雖然我沒有對國力提升做出什麼不可磨滅的貢獻,但是我可以探索下動態條形圖是怎樣繪製的,應該也算是傳播知識了吧(笑哭)。之所以這麼操作,還是由於條形圖繪製過程中是從下往上畫,為了條形的排序是從下往上條形越來越長,所以採用這樣的操作。來看一下上邊截取出來的數據集繪製出來的條形圖是什麼樣子的:plt.figure(figsize=(10,6))plt.barh(dff['球隊'], dff['積分']);ok,畫出來是符合要求的條形圖!