亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Matplotlib繪圖基礎(chǔ)之子圖詳解

 更新時(shí)間:2023年07月28日 15:47:48   作者:databook  
這篇文章主要為大家詳細(xì)介紹了Matplotlib繪制子圖的常用方式和技巧,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的可以了解一下

使用Matplotlib對(duì)分析結(jié)果可視化時(shí),比較各類分析結(jié)果是常見(jiàn)的場(chǎng)景。
在這類場(chǎng)景之下,將多個(gè)分析結(jié)果繪制在一張圖上,可以幫助用戶方便地組合和分析多個(gè)數(shù)據(jù)集,提高數(shù)據(jù)可視化的效率和準(zhǔn)確性。

本篇介紹Matplotlib繪制子圖的常用方式和技巧。

1. 添加子圖的方式

添加子圖主要有兩種方式,

一種是函數(shù)式風(fēng)格:(也就是上一篇畫(huà)布中介紹的方式)

import numpy as np
import matplotlib
import matplotlib.pyplot as plt
%matplotlib inline
x = np.array(range(0, 8))
fig = plt.figure(figsize=[6,4])
fig.add_subplot(211) # 2行1列的第一個(gè)
y = np.random.randint(1, 100, 8)
plt.plot(x, y)
fig.add_subplot(212) # 2行1列的第二個(gè)
y = np.random.randint(1, 100, 8)
plt.plot(x, y)

另一種是面向?qū)ο箫L(fēng)格:(使用 Axes 對(duì)象)

x = np.array(range(0, 8))
fig, ax = plt.subplots(1, 2)  # 設(shè)置子圖1行2列
y = np.random.randint(1, 100, 8)
ax[0].plot(x, y)
y = np.random.randint(1, 100, 8)
ax[1].plot(x, y)

上面設(shè)置好子圖的布局之后,添加子圖的順序是從上到下,從左到右。

2. 子圖的布局

子圖的布局是按照行列設(shè)置的,設(shè)置之后,相應(yīng)的位置可以添加子圖。

x = np.array(range(0, 8))
rows, cols = 2, 2  # 2行2列,4個(gè)子圖
fig, ax = plt.subplots(rows, cols)
for i in range(rows):
    for j in range(cols):
        y = np.random.randint(1, 100, 8)
        ax[i, j].plot(x, y) # i,j定位子圖的位置

子圖按照網(wǎng)格布局時(shí),我們看到上面4個(gè)子圖的Y軸刻度不一樣,這樣不利于比較。

x = np.array(range(0, 8))
rows, cols = 2, 2  # 2行2列,4個(gè)子圖
fig, ax = plt.subplots(rows, cols, sharey='all')
for i in range(rows):
    for j in range(cols):
        y = np.random.randint(1, 100, 8)
        ax[i, j].plot(x, y) # i,j定位子圖的位置

設(shè)置 sharey='all'之后,Y軸刻度保持一致,這樣比較曲線才有意義。

上面的示例中 X軸刻度是一致的,如果不一致,可以用 sharex 屬性來(lái)設(shè)置。

3. 復(fù)雜的布局

3.1. 不規(guī)則的網(wǎng)格

除了規(guī)則的網(wǎng)格布局,還可以通過(guò) GridSpec 設(shè)置不規(guī)則的網(wǎng)格。

比如:

rows, cols = 3, 3
grid = plt.GridSpec(rows, cols)
plt.subplot(grid[0, :2])
plt.subplot(grid[0, 2])
plt.subplot(grid[1, 0])
plt.subplot(grid[1, 1:])
plt.subplot(grid[2, :])

上例中設(shè)置了3行3列的網(wǎng)格,但是不是每個(gè)圖形占用幾個(gè)網(wǎng)格是可以調(diào)整的。

3.2. 嵌套圖形

除了網(wǎng)格,還可以通過(guò)相對(duì)定位的方式來(lái)繪制多個(gè)子圖。

fig = plt.figure()
fig.add_axes([0.1, 0.1, 1, 1])
fig.add_axes([0.3, 0.3, 0.3, 0.3])
fig.add_axes([0.7, 0.6, 0.3, 0.2])

上面按相對(duì)位置添加子圖的函數(shù) add_axes的參數(shù)是一個(gè)4元列表

這個(gè)列表4個(gè)元素的含義:

  • 第一個(gè)元素表示子圖左下角距離畫(huà)布左邊的距離占畫(huà)布總寬度的比例
  • 第二個(gè)元素表示子圖左下角距離畫(huà)布底邊的距離占畫(huà)布總高度的比例
  • 第三個(gè)元素表示子圖寬度占畫(huà)布總寬度的比例
  • 第三個(gè)元素表示子圖高度占畫(huà)布總高度的比例

注意,這里的4個(gè)值都是比例。

4. 總結(jié)回顧

Matplotlib 中的每個(gè)子圖可以有自己的標(biāo)簽、大小、位置和樣式,可以方便地組合成一個(gè)復(fù)雜的圖形。

我們一般在下列場(chǎng)景中使用子圖:

  • 數(shù)據(jù)可視化:將多個(gè)數(shù)據(jù)集在同一張圖中顯示,進(jìn)行對(duì)比和分析。
  • 圖表組合:將多個(gè)圖表組合在一起,形成一個(gè)綜合性的圖形。
  • 數(shù)據(jù)分析:將多個(gè)數(shù)據(jù)集在同一張圖中顯示,進(jìn)行篩選和篩選。
  • 可視化規(guī)范化:將多個(gè)來(lái)源不同的數(shù)據(jù)集在同一張圖中顯示,保證圖形的一致性和準(zhǔn)確性。

到此這篇關(guān)于Matplotlib繪圖基礎(chǔ)之子圖詳解的文章就介紹到這了,更多相關(guān)Matplotlib子圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python使用turtle繪制有趣的龍年祝福動(dòng)畫(huà)

    Python使用turtle繪制有趣的龍年祝福動(dòng)畫(huà)

    這篇文章主要介紹了Python的內(nèi)置庫(kù)——小海龜(turtle),它是一個(gè)非常實(shí)用的繪畫(huà)工具,不僅可以幫助我們繪制圖形,還能讓我們查看整個(gè)繪畫(huà)過(guò)程,下面我們就來(lái)看看如何使用turtle繪制有趣的龍年祝福動(dòng)畫(huà)吧
    2024-01-01
  • Python之Pygame的Event事件模塊

    Python之Pygame的Event事件模塊

    這篇文章主要介紹了Pygame的Event事件模塊,事件(Event)是 Pygame 的重要模塊之一,它是構(gòu)建整個(gè)游戲程序的核心,Pygame 定義了一個(gè)專門(mén)用來(lái)處理事件的結(jié)構(gòu),即事件隊(duì)列,本文有一定參考價(jià)值,感興趣的同學(xué)可以閱讀參考
    2023-04-04
  • 如何用itertools解決無(wú)序排列組合的問(wèn)題

    如何用itertools解決無(wú)序排列組合的問(wèn)題

    下面小編就為大家?guī)?lái)一篇如何用itertools解決無(wú)序排列組合的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • 使用python獲取郵箱郵件的設(shè)置方法

    使用python獲取郵箱郵件的設(shè)置方法

    這篇文章主要介紹了使用python獲取郵箱郵件的設(shè)置方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • python如何往列表頭部和尾部添加元素

    python如何往列表頭部和尾部添加元素

    這篇文章主要介紹了python如何往列表頭部和尾部添加元素,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • python for和else語(yǔ)句趣談

    python for和else語(yǔ)句趣談

    這篇文章主要介紹了python for和else語(yǔ)句趣談,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • python實(shí)現(xiàn)飛機(jī)大戰(zhàn)游戲(pygame版)

    python實(shí)現(xiàn)飛機(jī)大戰(zhàn)游戲(pygame版)

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)pygame版的飛機(jī)大戰(zhàn)游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • Python調(diào)用易語(yǔ)言動(dòng)態(tài)鏈接庫(kù)實(shí)現(xiàn)驗(yàn)證碼功能

    Python調(diào)用易語(yǔ)言動(dòng)態(tài)鏈接庫(kù)實(shí)現(xiàn)驗(yàn)證碼功能

    今天成功把易語(yǔ)言調(diào)用驗(yàn)證碼通殺的DLL在Python中成功調(diào)用了,心理美滋滋的,接著把我的經(jīng)驗(yàn)及示例代碼分享給大家,希望對(duì)大家有所幫助
    2021-08-08
  • Python傳統(tǒng)圖像處理之皮膚區(qū)域檢測(cè)詳解

    Python傳統(tǒng)圖像處理之皮膚區(qū)域檢測(cè)詳解

    這篇文章主要介紹了在不同情景下對(duì)傳統(tǒng)圖像進(jìn)行皮膚區(qū)域檢測(cè),文章中的代碼具有一定的參考價(jià)值,感興趣的小伙伴可以跟隨小編一起來(lái)學(xué)習(xí)學(xué)習(xí)
    2021-12-12
  • Python編程基礎(chǔ)之運(yùn)算符重載詳解

    Python編程基礎(chǔ)之運(yùn)算符重載詳解

    這篇文章主要為大家詳細(xì)介紹了Python運(yùn)算符重載,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01

最新評(píng)論