如何在 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()

輸出

更新於: 2023年8月2日

15K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.