最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Matplotlib繪圖基礎之子圖詳解

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

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

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

1. 添加子圖的方式

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

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

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列的第一個
y = np.random.randint(1, 100, 8)
plt.plot(x, y)
fig.add_subplot(212) # 2行1列的第二個
y = np.random.randint(1, 100, 8)
plt.plot(x, y)

另一種是面向對象風格:(使用 Axes 對象)

x = np.array(range(0, 8))
fig, ax = plt.subplots(1, 2)  # 設置子圖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)

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

2. 子圖的布局

子圖的布局是按照行列設置的,設置之后,相應的位置可以添加子圖。

x = np.array(range(0, 8))
rows, cols = 2, 2  # 2行2列,4個子圖
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)格布局時,我們看到上面4個子圖的Y軸刻度不一樣,這樣不利于比較。

x = np.array(range(0, 8))
rows, cols = 2, 2  # 2行2列,4個子圖
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定位子圖的位置

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

上面的示例中 X軸刻度是一致的,如果不一致,可以用 sharex 屬性來設置。

3. 復雜的布局

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

除了規(guī)則的網(wǎng)格布局,還可以通過 GridSpec 設置不規(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, :])

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

3.2. 嵌套圖形

除了網(wǎng)格,還可以通過相對定位的方式來繪制多個子圖。

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])

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

這個列表4個元素的含義:

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

注意,這里的4個值都是比例。

4. 總結回顧

Matplotlib 中的每個子圖可以有自己的標簽、大小、位置和樣式,可以方便地組合成一個復雜的圖形。

我們一般在下列場景中使用子圖:

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

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

相關文章

最新評論

西城区| 南江县| 宁都县| 阿克陶县| 茌平县| 景谷| 四子王旗| 神池县| 叶城县| 镇远县| 中阳县| 邹城市| 桦甸市| 清丰县| 房山区| 卓尼县| 六枝特区| 乐业县| 香港 | 临沂市| 德江县| 宕昌县| 泽库县| 大足县| 巫溪县| 中阳县| 德江县| 虞城县| 修水县| 二手房| 锡林郭勒盟| 弋阳县| 介休市| 义马市| 平利县| 嵊州市| 威海市| 綦江县| 德江县| 曲靖市| 房产|