matplotlib figsize
在使用matplotlib绘制图形时,figsize参数是一个非常重要的参数,它可以用来控制绘制图形的大小。通过调整figsize参数,可以改变绘制图形的宽度和高度,使得图形更加符合需求和美观。本文将通过一系列示例代码,详细介绍如何使用figsize参数来控制matplotlib绘图的大小。
示例代码1:设置默认figsize参数
在开始绘图之前,我们可以通过rcParams设置默认的figsize参数,这样在绘图时就不需要额外指定了。
import matplotlib.pyplot as plt
import matplotlib as mpl
# 设置默认的figsize参数
mpl.rcParams['figure.figsize'] = (8, 6)
# 绘制一个简单的图形
plt.plot([1, 2, 3, 4], [10, 20, 25, 30])
plt.xlabel('x')
plt.ylabel('y')
plt.title('Simple Plot')
plt.show()
Output:
运行以上代码,会得到一个简单的图形,它的大小默认为(8, 6)。
示例代码2:改变默认figsize参数
如果不想使用默认的figsize参数,也可以在绘图时单独指定。
import matplotlib.pyplot as plt
# 绘制一个简单的图形,并设置不同的figsize参数
plt.figure(figsize=(10, 8))
plt.plot([1, 2, 3, 4], [10, 20, 25, 30])
plt.xlabel('x')
plt.ylabel('y')
plt.title('Simple Plot with Custom figsize')
plt.show()
Output:
运行以上代码,会得到一个与示例1不同大小的图形,大小为(10, 8)。
示例代码3:调整figsize参数的宽度
除了改变整体大小外,还可以单独调整figsize参数的宽度或高度。
import matplotlib.pyplot as plt
# 调整宽度为12,高度为6
plt.figure(figsize=(12, 6))
plt.plot([1, 2, 3, 4], [10, 20, 25, 30])
plt.xlabel('x')
plt.ylabel('y')
plt.title('Plot with Custom Width')
plt.show()
Output:
运行以上代码,会得到一个宽度为12,高度为6的图形。
示例代码4:调整figsize参数的高度
import matplotlib.pyplot as plt
# 调整宽度为6,高度为12
plt.figure(figsize=(6, 12))
plt.plot([1, 2, 3, 4], [10, 20, 25, 30])
plt.xlabel('x')
plt.ylabel('y')
plt.title('Plot with Custom Height')
plt.show()
Output:
运行以上代码,会得到一个宽度为6,高度为12的图形。
示例代码5:设置figsize参数为正方形
有时候我们想要绘制一个正方形的图形,可以设置宽度和高度相等。
import matplotlib.pyplot as plt
# 设置宽度和高度相等
plt.figure(figsize=(8, 8))
plt.plot([1, 2, 3, 4], [10, 20, 25, 30])
plt.xlabel('x')
plt.ylabel('y')
plt.title('Square Plot')
plt.show()
Output:
运行以上代码,会得到一个宽度和高度均为8的正方形图形。
示例代码6:绘制多个子图
在同一张图中绘制多个子图时,可以设置figsize参数来控制整体图形的大小。
import matplotlib.pyplot as plt
# 设置宽度和高度
plt.figure(figsize=(12, 6))
# 第一个子图
plt.subplot(2, 1, 1)
plt.plot([1, 2, 3, 4], [10, 20, 25, 30])
plt.xlabel('x')
plt.ylabel('y')
plt.title('First Subplot')
# 第二个子图
plt.subplot(2, 1, 2)
plt.plot([1, 2, 3, 4], [30, 25, 20, 10])
plt.xlabel('x')
plt.ylabel('y')
plt.title('Second Subplot')
plt.tight_layout()
plt.show()
Output:
运行以上代码,会得到一个包含两个子图的图形,整体大小为(12, 6)。
示例代码7:保存图形到文件
绘制完成后,可以将图形保存为图片文件,同时也可以设置保存图形的大小。
import matplotlib.pyplot as plt
# 设置宽度和高度
plt.figure(figsize=(8, 6))
plt.plot([1, 2, 3, 4], [10, 20, 25, 30])
plt.xlabel('x')
plt.ylabel('y')
plt.title('Save Plot to File')
plt.savefig('plot.png')
运行以上代码,会生成一张大小为(8, 6)的图形,并保存为plot.png文件。
示例代码8:使用subplots创建多个子图
除了使用subplot,还可以使用subplots一次性创建多个子图,并设置整体大小。
import matplotlib.pyplot as plt
# 创建两个子图
fig, ax = plt.subplots(1, 2, figsize=(12, 6))
# 第一个子图
ax[0].plot([1, 2, 3, 4], [10, 20, 25, 30])
ax[0].set_xlabel('x')
ax[0].set_ylabel('y')
ax[0].set_title('First Subplot')
# 第二个子图
ax[1].plot([1, 2, 3, 4], [30, 25, 20, 10])
ax[1].set_xlabel('x')
ax[1].set_ylabel('y')
ax[1].set_title('Second Subplot')
plt.tight_layout()
plt.show()
Output:
运行以上代码,会得到与示例6相同的图形,包含两个子图,整体大小为(12, 6)。
示例代码9:绘制3D图形
当绘制3D图形时,也可以调整figsize参数来改变图形的大小。
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# 生成数据
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))
# 设置宽度和高度
plt.figure(figsize=(10, 8))
ax = plt.axes(projection='3d')
ax.plot_surface(X, Y, Z, cmap='viridis')
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.title('3D Plot')
plt.show()
Output:
运行以上代码,会得到一个3D图形,整体大小为(10, 8)。
示例代码10:使用figsize控制面向对象方式绘图的大小
在面向对象方式绘图时,也可以通过设置figsize参数来控制图形的大小。
import matplotlib.pyplot as plt
# 创建一个Figure对象
fig = plt.figure(figsize=(8, 6))
# 在Figure对象上创建一个Axes对象
ax = fig.add_subplot(1, 1, 1)
# 绘制图形
ax.plot([1, 2, 3, 4], [10, 20, 25, 30])
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_title('OO Plot with Custom figsize')
plt.show()
Output:
运行以上代码,会得到一个使用面向对象方式绘制的图形,大小为(8, 6)。
通过以上示例代码,我们可以看到如何使用figsize参数来控制matplotlib绘图的大小,这对于定制化和美化图形是非常有帮助的。无论是单独调整宽度、高度还是设置正方形图形,都可以通过figsize参数轻松实现。同时,在绘制多个子图或者3D图形时,改变整体图形的大小也尤为重要。