matplotlib 设置figure的尺寸

matplotlib 设置figure的尺寸

参考:Matplotlib Figure Size

在使用matplotlib进行数据可视化时,我们经常需要调整图像的尺寸以适应不同的展示需求,比如在文章中插入图片时需要调整尺寸,或者在报告中展示大量图表时需要使得图表紧凑排列。在matplotlib中,我们可以通过设置figure的尺寸来实现这一目的。

设置figure的默认尺寸

在matplotlib中,我们可以通过plt.rcParams来设置全局的默认参数,包括figure的大小。默认情况下,figure的大小为(6.4, 4.8),我们可以通过设置figure.figsize参数来改变这个默认值。

import matplotlib.pyplot as plt

# 获取当前的默认配置
fig_size = plt.rcParams["figure.figsize"]
print("当前figure的默认尺寸为:", fig_size)

# 设置新的默认尺寸为(8, 6)
plt.rcParams["figure.figsize"] = [8, 6]

# 输出修改后的默认尺寸
fig_size_updated = plt.rcParams["figure.figsize"]
print("修改后的figure默认尺寸为:", fig_size_updated)

运行结果:

当前figure的默认尺寸为: [6.4, 4.8]
修改后的figure默认尺寸为: [8.0, 6.0]

通过上面的示例代码,我们成功地将figure的默认尺寸修改为了(8, 6)

设置单个figure的尺寸

除了修改全局的默认尺寸,我们还可以在每个figure创建时单独设置其尺寸。可以通过plt.figure(figsize=(width, height))来设置新的尺寸。

import matplotlib.pyplot as plt

# 创建一个figure,尺寸为(10, 5)
plt.figure(figsize=(10, 5))
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.title("Example Plot")
plt.show()

Output:

matplotlib 设置figure的尺寸

运行上面的代码,会生成一幅尺寸为(10, 5)的图像,展示了一个简单的折线图。

调整subplot的尺寸

在一个figure中可能包含多个subplot,我们也可以分别设置每个subplot的尺寸。可以通过plt.subplot2grid方法来设置不同subplot的大小和位置。

import matplotlib.pyplot as plt

plt.subplot2grid((2, 2), (0, 0), colspan=2)
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.title("First Subplot")

plt.subplot2grid((2, 2), (1, 0))
plt.plot([1, 2, 3, 4], [1, 2, 3, 4])
plt.title("Second Subplot")

plt.subplot2grid((2, 2), (1, 1))
plt.plot([1, 2, 3, 4], [4, 3, 2, 1])
plt.title("Third Subplot")

plt.tight_layout()
plt.show()

Output:

matplotlib 设置figure的尺寸

运行结果展示了一个包含三个subplot的图像,每个subplot的尺寸和位置被精确控制。

设置figure的分辨率

除了设置figure的大小外,我们还可以设置figure的分辨率,即每英寸像素点的数量。可以通过plt.savefig保存图像时设置dpi参数来指定分辨率。

import matplotlib.pyplot as plt

plt.figure(figsize=(4, 3), dpi=100)
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.title("Example Plot")
plt.savefig("example_plot.png", dpi=300)
plt.show()

Output:

matplotlib 设置figure的尺寸

运行上面的代码会生成一个尺寸为(4, 3)的图像,并保存为example_plot.png文件,分辨率为300 DPI。

调整figure大小与子图间距

在绘制包含多个子图的figure时,我们可能需要调整figure的大小以及子图之间的间距。可以通过参数figsizesubplots_adjust来实现。

import matplotlib.pyplot as plt

fig, axs = plt.subplots(2, 2, figsize=(10, 8))
plt.subplots_adjust(left=0.1, bottom=0.1, right=0.9, top=0.9, wspace=0.3, hspace=0.3)

for i in range(2):
    for j in range(2):
        axs[i, j].plot([1, 2, 3, 4], [1, 2, 3, 4])
        axs[i, j].set_title(f"Subplot ({i}, {j})")

plt.show()

Output:

matplotlib 设置figure的尺寸

运行结果展示了一个包含4个子图的图像,每个子图之间的间距和figure的大小被精确调整。

修改已有figure的大小

有时候我们可能需要修改已经存在的figure的大小,可以通过set_size_inches方法来实现。

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.plot([1, 2, 3, 4], [1, 4, 9, 16])

# 将图像大小修改为(8, 6)
fig.set_size_inches(8, 6)
plt.show()

Output:

matplotlib 设置figure的尺寸

运行结果会展示一个尺寸为(8, 6)的图像。

使用rcParams设置默认尺寸

除了直接设置figure的尺寸外,我们还可以通过rcParams来设置默认的尺寸参数,以在整个程序中生效。

import matplotlib.pyplot as plt

import matplotlib as mpl
mpl.rcParams['figure.figsize'] = [6.0, 4.0]

plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.title("Example Plot")
plt.show()

Output:

matplotlib 设置figure的尺寸

以上代码将默认的figure尺寸设置为(6, 4),这样在之后创建的所有figure中都会使用这个默认尺寸。

使用面向对象的方法设置figure尺寸

在matplotlib中,我们可以通过面向对象的方式来设置figure的尺寸,这样更加灵活。

import matplotlib.pyplot as plt

fig, ax = plt.subplots(figsize=(6, 4))
ax.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.show()

Output:

matplotlib 设置figure的尺寸

以上代码中,我们通过plt.subplots(figsize=(6, 4))方法创建了一个大小为(6, 4)的figure。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程