一、默認畫布大小
matplotlib是一個用Python編寫的繪圖庫,可以制作各種類型的圖表和可視化。在matplotlib中,畫布是你繪制圖形的區(qū)域,可以通過指定畫布大小來控制圖形的大小和比例。
如果你沒有指定畫布大小,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()函數(shù)的。例如,如果你想要一個大小為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()函數(shù)來創(chuàng)建一個包含子圖的figure對象,并通過figsize參數(shù)指定了畫布的大小為8英寸乘以6英寸。
三、設(shè)置dpi
除了指定畫布大小,你還可以通過設(shè)置dpi(每英寸點數(shù))來控制畫布的大小。dpi指定了圖形在打印或顯示時的精度。默認值為100,它是指定的像素數(shù),而不是實際英寸數(shù)。
如果你想要更高分辨率的圖像,你可以增加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()
在這個例子中,我們通過設(shè)置dpi參數(shù)為300來增加畫布精度。
四、調(diào)整subplot布局
在matplotlib中,subplot是圖形中包含多個小圖,可以通過subplot()函數(shù)來創(chuàng)建。如果你的畫布中包含多個subplot,你可以通過調(diào)整布局來控制它們的間距和大小。
在下面的例子中,我們創(chuàng)建了一個包含兩個subplot的畫布,并使用subplot_adjust()函數(shù)來調(diào)整它們的位置和大小:
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()函數(shù)創(chuàng)建了一個包含兩個subplot的畫布,其中第一個subplot的標題是“subplot 1”,第二個subplot的標題是“subplot 2”。我們使用了subplots_adjust()函數(shù)來調(diào)整它們之間的間距。通過調(diào)整wspace參數(shù)的值,我們使得兩個subplot之間的水平間距為0.4。
五、結(jié)合實例
下面是一個更完整的示例,演示了如何通過指定畫布大小、調(diào)整subplot布局、添加標題、標簽和圖例來創(chuàng)建一個漂亮的圖像。
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()函數(shù)創(chuàng)建了一個包含100個點的x坐標,通過np.sin()和np.cos()函數(shù)創(chuàng)建了兩個對應(yīng)y坐標。我們使用了subplots()函數(shù)來創(chuàng)建一個包含一個subplot的畫布,并通過figsize參數(shù)指定畫布的大小。然后我們通過plot()函數(shù)繪制了兩個曲線,分別為y1和y2,并通過label參數(shù)添加了標簽。我們使用set_xlabel()和set_ylabel()函數(shù)添加了x軸和y軸標簽。使用set_title()函數(shù)添加了標題,并使用legend()函數(shù)添加了圖例。最后,我們使用subplots_adjust()函數(shù)調(diào)整了標題的位置,使它與圖像的頂部有一定的距離。