4.9Python數據處理篇之Matplotlib系列(九)---子圖分布


目錄

前言

前面我們已經知道,一個figure可以畫一張畫布,今天我們講的是在同一個figure里畫多張子圖,我們要用的是subplot與subplot2grid()方法來繪制子圖。

(一)subplot()方法

1.語法說明

subplot是均勻的分割繪圖區,來進行子圖的放置。

  1. 需要注意的是subplot並不適合來繪制跨行或者跨列的子圖,跨行與跨列的子圖繪制,交給subplot2grid()更容易完成。
  2. 如果分割的圖只是個位數時,那么原本的表示方法:(2,2,1),與(221)等效,其他的不可如此。

2.源代碼

# 導入模塊
import matplotlib.pyplot as plt
import numpy as np

# 數據
x = np.linspace(-10, 10, 100)
y1 = x
y2 = x**2
y3 = x**3

# 創建一個figure窗體
fig = plt.figure(num="子圖得比較")
fig.suptitle("draw some subplot")

# 繪制第一個子圖
ax1 = plt.subplot(2, 2, 1)
plt.plot(x, y1)
ax1.set_title("y1 = x")

# 繪制第二個子圖
ax2 = plt.subplot(222)
plt.plot(x, y2)
ax2.set_title("y2=x**2")


# 繪制第三個子圖
ax3 = plt.subplot(223)
plt.plot(x, y3)
ax3.set_title("y3=x**3")

# 展示
plt.show()

3.輸出效果

01.png

(二)subplot2grid方法

1.語法說明

subplot2grid((分割),(起始位置),colspan=列寬, rowspan=行寬)

例如:plt.subplot2grid((3, 3), (1, 0), colspan=2, rowspan=1),

將整塊figure畫布分成3行3列的格子,從第2行,第一列畫起該子圖,列寬占兩格,行寬占一格。

像figure一樣,定義subplot2grid()子圖以后,后續的操作都在該子圖上,直到另一個子圖的出現。

2.源代碼

import matplotlib.pyplot as plt

# 創建畫布
plt.figure()
# 創建子圖
ax1 = plt.subplot2grid((3, 3), (0, 0), colspan=3, rowspan=1)
ax1.plot([1, 2], [1, 2])
ax1.set_title("No1")
ax2 = plt.subplot2grid((3, 3), (1, 0), colspan=2, rowspan=1)
ax3 = plt.subplot2grid((3, 3), (1, 2), colspan=2, rowspan=2)
ax4 = plt.subplot2grid((3, 3), (2, 0), colspan=1, rowspan=1)
ax5 = plt.subplot2grid((3, 3), (2, 1), colspan=1, rowspan=1)

plt.show()

3.展示效果

02.png

作者:Mark

日期:2019/02/01 周五


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM