一、默認(rèn)畫(huà)布大小
matplotlib是一個(gè)用Python編寫(xiě)的繪圖庫(kù),可以制作各種類(lèi)型的圖表和可視化。在matplotlib中,畫(huà)布是你繪制圖形的區(qū)域,可以通過(guò)指定畫(huà)布大小來(lái)控制圖形的大小和比例。
如果你沒(méi)有指定畫(huà)布大小,matplotlib會(huì)使用默認(rèn)的大小,這個(gè)大小可以通過(guò)rcParams['figure.figsize']來(lái)查看。默認(rèn)大小是[6.4, 4.8],單位是英寸。這個(gè)大小適合在筆記本電腦和小型顯示器上顯示,但在大型顯示器或打印機(jī)上可能會(huì)過(guò)小。
import matplotlib.pyplot as plt
plt.plot([1,2,3,4])
plt.ylabel('some numbers')
plt.show()
二、指定畫(huà)布大小
如果默認(rèn)大小不適合你的需求,你可以通過(guò)指定大小來(lái)控制畫(huà)布的大小。在matplotlib中,畫(huà)布的大小是以元組形式傳遞給figure()函數(shù)的。例如,如果你想要一個(gè)大小為8英寸乘以6英寸的畫(huà)布,你可以這樣做:
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()
在這個(gè)例子中,我們使用了subplots()函數(shù)來(lái)創(chuàng)建一個(gè)包含子圖的figure對(duì)象,并通過(guò)figsize參數(shù)指定了畫(huà)布的大小為8英寸乘以6英寸。
三、設(shè)置dpi
除了指定畫(huà)布大小,你還可以通過(guò)設(shè)置dpi(每英寸點(diǎn)數(shù))來(lái)控制畫(huà)布的大小。dpi指定了圖形在打印或顯示時(shí)的精度。默認(rèn)值為100,它是指定的像素?cái)?shù),而不是實(shí)際英寸數(shù)。
如果你想要更高分辨率的圖像,你可以增加dpi值。例如,如果你想要一個(gè)300dpi的畫(huà)布,你可以這樣做:
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()
在這個(gè)例子中,我們通過(guò)設(shè)置dpi參數(shù)為300來(lái)增加畫(huà)布精度。
四、調(diào)整subplot布局
在matplotlib中,subplot是圖形中包含多個(gè)小圖,可以通過(guò)subplot()函數(shù)來(lái)創(chuàng)建。如果你的畫(huà)布中包含多個(gè)subplot,你可以通過(guò)調(diào)整布局來(lái)控制它們的間距和大小。
在下面的例子中,我們創(chuàng)建了一個(gè)包含兩個(gè)subplot的畫(huà)布,并使用subplot_adjust()函數(shù)來(lái)調(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()
在這個(gè)例子中,我們使用了subplot()函數(shù)創(chuàng)建了一個(gè)包含兩個(gè)subplot的畫(huà)布,其中第一個(gè)subplot的標(biāo)題是“subplot 1”,第二個(gè)subplot的標(biāo)題是“subplot 2”。我們使用了subplots_adjust()函數(shù)來(lái)調(diào)整它們之間的間距。通過(guò)調(diào)整wspace參數(shù)的值,我們使得兩個(gè)subplot之間的水平間距為0.4。
五、結(jié)合實(shí)例
下面是一個(gè)更完整的示例,演示了如何通過(guò)指定畫(huà)布大小、調(diào)整subplot布局、添加標(biāo)題、標(biāo)簽和圖例來(lái)創(chuàng)建一個(gè)漂亮的圖像。
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()
在這個(gè)例子中,我們通過(guò)np.linspace()函數(shù)創(chuàng)建了一個(gè)包含100個(gè)點(diǎn)的x坐標(biāo),通過(guò)np.sin()和np.cos()函數(shù)創(chuàng)建了兩個(gè)對(duì)應(yīng)y坐標(biāo)。我們使用了subplots()函數(shù)來(lái)創(chuàng)建一個(gè)包含一個(gè)subplot的畫(huà)布,并通過(guò)figsize參數(shù)指定畫(huà)布的大小。然后我們通過(guò)plot()函數(shù)繪制了兩個(gè)曲線,分別為y1和y2,并通過(guò)label參數(shù)添加了標(biāo)簽。我們使用set_xlabel()和set_ylabel()函數(shù)添加了x軸和y軸標(biāo)簽。使用set_title()函數(shù)添加了標(biāo)題,并使用legend()函數(shù)添加了圖例。最后,我們使用subplots_adjust()函數(shù)調(diào)整了標(biāo)題的位置,使它與圖像的頂部有一定的距離。