Matplotlib
庫是一個用於資料視覺化和繪圖的 Python 庫。
它提供了大量的函數和類,可以幫助使用者輕鬆地建立各種型別的圖表,包括直方圖、箱形圖、散點圖、餅圖、條形圖和密度圖等。
使用 Matplotlib
的過程中,遇到的難點並不在於繪製各類的圖形,因為每種圖形都有其對應的API。
難點在於對繪製的圖形進行調整,這些調整包括:
等等。
進行這些調整需要對 Matplotlib
的繪圖機制和其中的主要元素有個整體的瞭解。
本篇首先整體介紹下Matplotlib
繪製的圖形中的主要元素,然後重點介紹下其中第一個重要的元素--畫布。
下面繪製一個簡單的圖形來演示Matplotlib
繪圖時的主要元素。
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
%matplotlib inline
#繪製一個展示主要元素的圖
x = np.array(range(0, 8))
y1 = np.sin(x)
fig = plt.figure()
fig.set_size_inches(10,4)
fig.set_facecolor('lightgreen')
fig.suptitle("整個圖形的總標題")
fig.subplots_adjust(wspace=0.3)
ax1 = fig.add_subplot(121)
ax1.plot(x, y1)
ax1.set_title("圖1 標題")
ax1.set_xlabel("圖1--x軸")
ax1.set_ylabel("圖1--y軸")
ax2 = fig.add_subplot(122)
y2 = np.cos(x)
ax2.plot(x, y1)
ax2.plot(x, y2)
ax2.set_title("圖2 標題")
ax2.set_xlabel("圖2--x軸")
ax2.set_ylabel("圖2--y軸")
ax2.legend(labels=["sin", "cos"])
fig.show()
上例中,我們繪製了2個子圖。
主要的元素包括,圖形的大小,圖形的標題(主標題和子圖示題),座標軸(軸標籤和刻度),圖例,子圖中曲線(這裡可以根據情況換成其他圖形,比如柱狀圖,散點圖等等)。
上面的範例程式碼不用太關心,這裡只是為了顯示Matplotlib
的主要元素。
後續的文章會介紹各個主要元素的常用屬性,最終的目的是能夠靈活的繪製出符合顯示要求的圖形,而不僅僅只是繪製出圖形。
本篇介紹的主要元素是畫布。
畫布是其他所有的元素的載體,可以說是最重要,也是最容易被忽視的元素。
繪製圖形之前,第一件事就是建立畫布。
建立畫布之後,一般主要用到的屬性是調整畫布的大小和顏色。Matplotlib
畫布的大小通過設定英寸和dpi
來實現,dpi
表示一英寸有多少畫素。
比如下面的範例:
fig = plt.figure(figsize=[6, 3], dpi=100)
fig.suptitle("標題")
x = np.array(range(0, 8))
y = np.sin(x)
plt.plot(x, y)
修改dpi=200
,圖形明顯變大和清晰。
fig = plt.figure(figsize=[6, 3], dpi=200)
除了大小,設定畫布的顏色也是比較常用的。
顏色主要有兩種,背景色和邊框顏色(預設的邊框寬度是0,所以要設定邊框顏色時,別忘了設定邊框的寬度)。
比如:下面範例設定了背景色淺綠色,邊框寬度10,顏色紅色。
fig = plt.figure(facecolor="lightgreen",
edgecolor="red",
linewidth=10)
fig.suptitle("標題")
x = np.array(range(0, 8))
y = np.sin(x)
plt.plot(x, y)
除了屬性,畫布還有幾個方法也是經常使用的。
上面的範例中已經包含了,也就是 suptitle()
方法。
新增子圖用 add_subplot()
方法,這個方法的引數一般是三個陣列 xyz
,x
表示有幾行,y
表示有幾列,z
表示是第一個子圖。
比如:一行兩列2個圖
fig = plt.figure()
fig.add_subplot(121)
fig.add_subplot(122)
比如:2行一列2個圖:
fig = plt.figure()
fig.add_subplot(211)
fig.add_subplot(212)
比如:2行2列4個圖:
fig = plt.figure()
fig.add_subplot(221)
fig.add_subplot(222)
fig.add_subplot(223)
fig.add_subplot(224)
畫布還有個重要的功能就是把顯示的圖形儲存下來,即 savefig()
方法。
可以把繪製的圖形儲存到磁碟,用於分享或者製作報告。
fig.savefig("d:/share/image.png")
畫布讓我們可以整體上設定圖形的質量和排版,分析和作圖過程中雖然不用過多考慮它,但是最終如果要出報告和檔案時,畫布的設定就會變得重要。
畫布是繪圖的第一步,接下來這個系列會逐步介紹 Matplotlib
的其他主要元素。