如何在 Seaborn 中调整绘图的大小?
绘图的大小是指其宽度和高度,单位为英寸或厘米。通过调整绘图大小,我们可以控制它在屏幕或印刷媒体上占用的空间。Seaborn 提供了几个选项来修改绘图大小以满足我们的需求。
Seaborn 的 API 中没有称为"图形大小"的特定参数。使用 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 # 创建具有特定大小的图形 plt.figure(figsize=(8, 6)) x = [1,22,10] y = [4,56,67] # 使用 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 # 创建具有特定大小的图形 plt.figure(figsize=(8, 6)) x = [1,22,10] y = [4,56,67] # 使用 Seaborn 创建图 sns.scatterplot(x) # 设置具有特定大小的上下文 sns.set_context("paper", rc={"figure.figsize": (8, 6)}) # 使用 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 # 创建具有特定大小的图形 plt.figure(figsize=(3, 3)) y = [4,56,67] # 使用 Seaborn 创建绘图 sns.scatterplot(y) # 使用设置图形大小rcParams plt.rcParams["figure.figsize"] = (600, 400) # 使用 Seaborn 创建图 sns.scatterplot(y=y) plt.show()
输出
调整子图的大小
如果一个图中有多个子图,我们可以使用 Matplotlib 中的 'subplots()' 函数控制它们各自的大小。
示例
在此示例中,我们使用 'fig, axis = plt.subplots(2, 2, figsize=(10, 8))' 来创建一个带有 2x2 子图网格的图形。 'figsize' 参数指定图形的整体大小,而可以通过 'axes' 对象访问各个子图并分配特定的图。
# 创建具有多个子图的图形 fig, axis = plt.subplots(2, 2, figsize=(10, 8)) # 使用 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"' 确保保存的图包含整个图形,而不会裁剪任何部分。
# 设置图形大小 plt.figure(figsize=(6, 4)) # 使用 Seaborn 创建图 sns.scatterplot(x=x, y=y) # 以所需大小保存图 plt.savefig("output.png", dpi=100, bbox_inches="tight") plt.show()