一、基本概念
add_subplot()是matplotlib庫中的一個方法,用於創建一個指定大小的子圖,並將其添加到指定位置的figure中。它可以快速地為我們創建不同布局的子圖。在使用add_subplot()時,需要指定三個參數:行數,列數,子圖編號。其中,行數和列數指定了圖像排列的方式,子圖編號指定了將要創建的子圖在figure中的位置。
二、使用方法
1. 僅創建子圖
import matplotlib.pyplot as plt
fig = plt.figure() # 創建一個空白的figure
ax = fig.add_subplot(1, 1, 1) # 創建一個大小為1*1的子圖
plt.show() # 展示圖像
上述代碼中,我們首先創建了一個空白的figure,然後使用add_subplot()方法創建了一個大小為1*1的子圖,並將其存儲在變數ax中。最後,我們調用plt.show()展示這個子圖。
2. 創建多個子圖
import matplotlib.pyplot as plt
fig = plt.figure() # 創建一個空白的figure
ax1 = fig.add_subplot(2, 2, 1) # 創建第一個子圖,位置為(0,0)
ax2 = fig.add_subplot(2, 2, 2) # 創建第二個子圖,位置為(0,1)
ax3 = fig.add_subplot(2, 2, 3) # 創建第三個子圖,位置為(1,0)
ax4 = fig.add_subplot(2, 2, 4) # 創建第四個子圖,位置為(1,1)
plt.show() # 展示圖像
上述代碼中,我們創建了一個大小為2*2的figure,並在其中創建了4個子圖。通過指定子圖的編號和位置,我們可以很容易地控制子圖的排列方式。
3. 設置子圖共享軸
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
ax1 = fig.add_subplot(2, 1, 1)
ax2 = fig.add_subplot(2, 1, 2, sharex=ax1) # 將ax2的x軸與ax1共享
x = np.linspace(0, 2 * np.pi, 100)
y1 = np.sin(x)
y2 = np.cos(x)
ax1.plot(x, y1)
ax2.plot(x, y2)
plt.show()
上述代碼中,我們創建了2個子圖,並設置第二個子圖(ax2)共享第一個子圖(ax1)的x軸。這樣可以使子圖在某些方面呈現統一性,提升圖像的觀感。
4. 添加圖例和標題
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
x = np.linspace(0, 2 * np.pi, 100)
y1 = np.sin(x)
y2 = np.cos(x)
ax.plot(x, y1, 'r', label='sin(x)')
ax.plot(x, y2, 'b', label='cos(x)')
ax.legend() # 顯示圖例
ax.set_title('A simple plot') # 添加標題
plt.show()
上述代碼中,我們創建了一個子圖,並在其上繪製了兩個線條,並為它們設置了標籤。然後,我們調用ax.legend()方法顯示圖例,並使用ax.set_title()方法為子圖添加了標題。
5. 使用ax.plot()繪製多種圖形
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
x = np.linspace(0, 2 * np.pi, 100)
y1 = np.sin(x)
y2 = np.cos(x)
ax.plot(x, y1, 'ro') # 繪製紅色點
ax.plot(x, y2, 'b--') # 繪製藍色虛線
plt.show()
上述代碼中,我們使用ax.plot()方法分別繪製了紅色點和藍色虛線。其中,’ro’和’b–‘分別指定了線條的顏色和類型。
三、總結
add_subplot()是matplotlib庫中的一個方法,用於快速創建不同布局的子圖。通過指定行數、列數和子圖編號,我們可以很容易地控制子圖在figure中的位置和排列方式。除此之外,我們還可以使用ax.plot()方法在子圖上繪製各種圖形,並通過調用ax.legend()和ax.set_title()等方法為子圖添加圖例和標題,提升圖像的可讀性和美觀度。
原創文章,作者:ZCUDN,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/334027.html