一、基本介紹
plt.figure()是matplotlib.pyplot中的一種功能強大的函數,常被用來創建新的繪圖窗口及其所對應的繪圖對象。它是一個最基礎的創建圖像對象的函數,所有其他的圖像繪製函數都需要先創建一個Figure對象再進行操作。它提供了多種參數來控制圖像的大小、分辨率、背景顏色、透明度等,能夠滿足用戶的多樣化需求。
二、參數介紹
plt.figure()函數提供了多個參數,主要包括:
1. num: 整數或字符串類型,用於指定圖表窗口編號或名稱。默認為None,表示創建一個新的圖表窗口。
2. figsize: 元組類型,指定圖表窗口大小,單位為英寸。默認為(6.4, 4.8)
3. dpi: 整數類型,指定繪圖對象的分辨率,即每英寸點數。默認為100
4. facecolor: 字符串類型,指定繪圖對象的背景顏色。默認為’w’
5. edgecolor: 字符串類型,指定繪圖對象的邊框顏色。默認為’w’
6. frameon: 布爾類型,表示是否顯示繪圖對象的邊框。默認為True
7. clear: 布爾類型,表示是否在創建新的繪圖窗口前清除之前的圖像。默認為False
三、示例代碼
import matplotlib.pyplot as plt # 1. 創建一個新的繪圖窗口,編號為1,大小為(8, 6),分辨率為100,背景顏色為'g',邊框為黑色,且邊框寬度為2 fig1 = plt.figure(num=1, figsize=(8, 6), dpi=100, facecolor='g', edgecolor='k', frameon=True) # 2. 創建一個新的繪圖窗口,編號為2,大小為(10, 8),分辨率為100,背景顏色為'w',邊框為白色,且邊框不顯示 fig2 = plt.figure(num='test', figsize=(10, 8), dpi=100, facecolor='w', edgecolor='w', frameon=False) # 3. 創建一個新的繪圖窗口,編號為3,大小為(6, 4),分辨率為100,背景顏色為'w',邊框為白色,且邊框寬度為1 fig3 = plt.figure(num=3, figsize=(6, 4), dpi=100, facecolor='w', edgecolor='w', frameon=True) fig3.patch.set_linewidth(1) # 4. 在創建新的繪圖窗口前清空之前的圖像,並設置新的背景顏色 plt.clf() fig4 = plt.figure(num=4, figsize=(5, 3), dpi=100, facecolor='b', edgecolor='w', frameon=True)
四、應用實例
plt.figure()函數的應用非常廣泛,下面將介紹幾個比較常見的實例。
1. 繪製多張子圖
一般情況下我們需要在一張圖中展示多幅子圖,這時我們可以通過先創建一張大圖,然後在它的基礎上繪製多個子圖。
import matplotlib.pyplot as plt fig = plt.figure(num=1, figsize=(8, 6), dpi=100) # 創建子圖1 ax1 = fig.add_subplot(221) ax1.plot([1,2,3,4],[2,4,6,8]) # 創建子圖2 ax2 = fig.add_subplot(222) ax2.plot([1,2,3,4],[1,3,5,7]) # 創建子圖3 ax3 = fig.add_subplot(223) ax3.plot([1,2,3,4],[2,5,7,8]) # 創建子圖4 ax4 = fig.add_subplot(224) ax4.plot([1,2,3,4],[1,3,5,6]) plt.show()
2. 繪製極軸圖
極軸圖是一種特殊的圖形類型,它是將圖像放在一個圓形坐標繫上展示,用於繪製徑向分布圖等。我們可以通過 plt.subplot() 函數創建極軸子圖,通過 figsize 參數指定整張圖的大小。
import numpy as np import matplotlib.pyplot as plt # 繪製極軸圖 r = np.arange(0, 1, 0.001) theta = 2 * np.pi * r fig = plt.figure(figsize=(6, 6), dpi=100) ax = fig.add_subplot(111, projection='polar') ax.plot(theta, r, color='r', linewidth=3) plt.show()
3. 繪製3D圖
plt.figure()函數還可以用來創建3D圖像對象。我們可以通過 axes 參數指定所需的子圖數量和布局,並可通過 figsize 參數調整整張圖像的大小。
import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D # 繪製3D圖 fig = plt.figure(figsize=(8, 8), dpi=100) ax = fig.add_subplot(111, projection='3d') x = np.arange(-5, 5, 0.1) y = np.arange(-5, 5, 0.1) X, Y = np.meshgrid(x, y) Z = np.sin(np.sqrt(X**2 + Y**2)) ax.plot_surface(X, Y, Z, cmap='rainbow')
4. 繪製帶有圖例和標題的圖表
我們可以通過使用 plt.legend() 和 plt.title() 函數來在圖表中添加圖例和標題等元素,使圖表更加完整。
import numpy as np import matplotlib.pyplot as plt x = np.arange(0, 6 * np.pi, 0.1) y1 = np.sin(x) y2 = np.cos(x) fig = plt.figure(figsize=(8, 6), dpi=100) plt.plot(x, y1, label='sin') plt.plot(x, y2, label='cos') plt.legend(loc='upper right') plt.title('Trigonometric Function') plt.xlabel('x') plt.ylabel('y')
五、小結
通過本文的介紹,我們了解了 plt.figure() 函數的基本概念和用法,其參數的作用及如何創建多幅子圖、極軸圖、3D圖和帶有圖例和標題的圖表等。希望本文能對讀者在日常使用matplotlib時有所幫助。
原創文章,作者:UTSUQ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/371628.html