如何在 Seaborn 中調整繪圖的大小?
繪圖的大小指的是其寬度和高度,單位可以是英寸或釐米。透過調整繪圖的大小,我們可以控制它在螢幕上或列印介質中佔據的空間。Seaborn 提供了多種修改繪圖大小以滿足我們需求的選項。
Seaborn 的 API 中沒有名為“figure size”的特定引數。當使用 Seaborn 建立繪圖時,我們可以透過使用 Matplotlib 的函式或引數直接操作 Figure 物件來指定繪圖的大小。
匯入所需的庫
在繼續使用這些方法之前,我們必須確保所需的庫已安裝在我們的 Python 工作環境中。安裝完成後,我們必須使用以下程式碼行匯入它們。
import seaborn as sns import matplotlib.pyplot as plt
在 seaborn 中調整繪圖大小有多種方法。讓我們詳細瞭解每種方法。
使用 Matplotlib 的 Figure 調整大小
Seaborn 繪圖是使用 Matplotlib 的 Figure 和 Axes 物件建立的。要調整繪圖的大小,我們可以直接操作 Figure 物件。
示例
在此示例中,我們使用 'plt.figure(figsize=(8, 6))' 建立一個寬度為 8 英寸,高度為 6 英寸的 Figure 物件。這將設定繪圖所需的大小。
import seaborn as sns import matplotlib.pyplot as plt # Create a figure with a specific size plt.figure(figsize=(8, 6)) x = [1,22,10] y = [4,56,67] # Create a plot using Seaborn sns.scatterplot(x) plt.show()
輸出

使用 Seaborn 的函式調整大小
Seaborn 提供了一個名為 'set_context()' 的便捷函式,它允許我們調整繪圖的整體樣式,包括大小。'set_context()' 函式有一個名為 'rc' 的引數,它接受一個 Matplotlib 引數字典。我們可以使用 'figure.figsize' 引數指定繪圖的大小。
示例
在此示例中,我們使用 'sns.set_context("paper", rc={"figure.figsize": (8, 6)})' 將繪圖上下文設定為“paper”,並將所需大小指定為 (8, 6) 英寸。之後建立的繪圖將反映此更新的上下文。
import seaborn as sns
import matplotlib.pyplot as plt
# Create a figure with a specific size
plt.figure(figsize=(8, 6))
x = [1,22,10]
y = [4,56,67]
# Create a plot using Seaborn
sns.scatterplot(x)
# Set the context with a specific size
sns.set_context("paper", rc={"figure.figsize": (8, 6)})
# Create a plot using Seaborn
sns.scatterplot(x=x)
plt.show()
輸出

使用 Matplotlib 的 rcParams 調整大小
Matplotlib 有一組稱為 'rcParams' 的全域性引數,它們控制繪圖外觀的各個方面。我們可以修改 'rcParams' 中的 'figure.figsize' 引數以調整 Seaborn 中繪圖的大小。
示例
在此示例中,'plt.rcParams["figure.figsize"] = (8, 6)' 將全域性引數 'figure.figsize' 設定為 (8, 6) 英寸,這會影響隨後使用 Seaborn 建立的繪圖的大小。
import seaborn as sns import matplotlib.pyplot as plt # Create a figure with a specific size plt.figure(figsize=(3, 3)) y = [4,56,67] # Create a plot using Seaborn sns.scatterplot(y) # Set the figure size using rcParams plt.rcParams["figure.figsize"] = (600, 400) # Create a plot using Seaborn sns.scatterplot(y=y) plt.show()
輸出

調整子圖的大小
如果我們在一個圖形中有多個子圖,我們可以使用 Matplotlib 中的 'subplots()' 函式控制它們各自的大小。
示例
在此示例中,我們使用 'fig, axes = plt.subplots(2, 2, figsize=(10, 8))' 建立一個具有 2x2 子圖網格的圖形。'figsize' 引數指定圖形的整體大小,而各個子圖可以透過 'axes' 物件訪問並分配特定的繪圖。
# Create a figure with multiple subplots fig, axes = plt.subplots(2, 2, figsize=(10, 8)) # Create plots using Seaborn sns.scatterplot(x=x, y=y, ax=axes[0, 0]) sns.histplot(data=x, ax=axes[0, 1]) sns.lineplot(data=y, ax=axes[1, 0]) sns.boxplot(data=y, ax=axes[1, 1]) plt.show()
輸出

儲存具有所需大小的繪圖
調整完繪圖的大小後,我們可以使用 Matplotlib 的 'savefig()' 函式將其儲存到檔案中,確保儲存的繪圖保留所需的大小。
示例
在此示例中 'plt.savefig("output.png", dpi=100, bbox_inches="tight")' 用於將繪圖儲存為影像檔案。'dpi' 引數指定解析度,'bbox_inches="tight"' 確保儲存的繪圖包含整個圖形,而不會裁剪任何部分。
# Set the figure size
plt.figure(figsize=(6, 4))
# Create a plot using Seaborn
sns.scatterplot(x=x, y=y)
# Save the plot with desired size
plt.savefig("output.png", dpi=100, bbox_inches="tight")
plt.show()
輸出

資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP