一、默认画布大小
matplotlib是一个用Python编写的绘图库,可以制作各种类型的图表和可视化。在matplotlib中,画布是你绘制图形的区域,可以通过指定画布大小来控制图形的大小和比例。
如果你没有指定画布大小,matplotlib会使用默认的大小,这个大小可以通过rcParams['figure.figsize']来查看。默认大小是[6.4, 4.8],单位是英寸。这个大小适合在笔记本电脑和小型显示器上显示,但在大型显示器或打印机上可能会过小。
import matplotlib.pyplot as plt
plt.plot([1,2,3,4])
plt.ylabel('some numbers')
plt.show()
二、指定画布大小
如果默认大小不适合你的需求,你可以通过指定大小来控制画布的大小。在matplotlib中,画布的大小是以元组形式传递给figure()函数的。例如,如果你想要一个大小为8英寸乘以6英寸的画布,你可以这样做:
import matplotlib.pyplot as plt
fig, ax = plt.subplots(figsize=(8, 6))
ax.plot([1,2,3,4])
ax.set_ylabel('some numbers')
plt.show()
在这个例子中,我们使用了subplots()函数来创建一个包含子图的figure对象,并通过figsize参数指定了画布的大小为8英寸乘以6英寸。
三、设置dpi
除了指定画布大小,你还可以通过设置dpi(每英寸点数)来控制画布的大小。dpi指定了图形在打印或显示时的精度。默认值为100,它是指定的像素数,而不是实际英寸数。
如果你想要更高分辨率的图像,你可以增加dpi值。例如,如果你想要一个300dpi的画布,你可以这样做:
import matplotlib.pyplot as plt
fig, ax = plt.subplots(figsize=(8, 6), dpi=300)
ax.plot([1,2,3,4])
ax.set_ylabel('some numbers')
plt.show()
在这个例子中,我们通过设置dpi参数为300来增加画布精度。
四、调整subplot布局
在matplotlib中,subplot是图形中包含多个小图,可以通过subplot()函数来创建。如果你的画布中包含多个subplot,你可以通过调整布局来控制它们的间距和大小。
在下面的例子中,我们创建了一个包含两个subplot的画布,并使用subplot_adjust()函数来调整它们的位置和大小:
import matplotlib.pyplot as plt
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(8, 6))
ax1.plot([1,2,3,4])
ax1.set_title('subplot 1')
ax2.plot([4,3,2,1])
ax2.set_title('subplot 2')
plt.subplots_adjust(wspace=0.4)
plt.show()
在这个例子中,我们使用了subplot()函数创建了一个包含两个subplot的画布,其中第一个subplot的标题是“subplot 1”,第二个subplot的标题是“subplot 2”。我们使用了subplots_adjust()函数来调整它们之间的间距。通过调整wspace参数的值,我们使得两个subplot之间的水平间距为0.4。
五、结合实例
下面是一个更完整的示例,演示了如何通过指定画布大小、调整subplot布局、添加标题、标签和图例来创建一个漂亮的图像。
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
fig, ax = plt.subplots(figsize=(8, 6))
ax.plot(x, y1, label='sin(x)')
ax.plot(x, y2, label='cos(x)')
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_title('Trigonometric functions')
ax.legend()
plt.subplots_adjust(top=0.8)
plt.show()
在这个例子中,我们通过np.linspace()函数创建了一个包含100个点的x坐标,通过np.sin()和np.cos()函数创建了两个对应y坐标。我们使用了subplots()函数来创建一个包含一个subplot的画布,并通过figsize参数指定画布的大小。然后我们通过plot()函数绘制了两个曲线,分别为y1和y2,并通过label参数添加了标签。我们使用set_xlabel()和set_ylabel()函数添加了x轴和y轴标签。使用set_title()函数添加了标题,并使用legend()函数添加了图例。最后,我们使用subplots_adjust()函数调整了标题的位置,使它与图像的顶部有一定的距离。