`Matplotlib` 庫是一個用於數據可視化和繪圖的 Python 庫。它提供了大量的函數和類,可以幫助用戶輕鬆地創建各種類型的圖表,包括直方圖、箱形圖、散點圖、餅圖、條形圖和密度圖等。 使用 `Matplotlib` 的過程中,遇到的難點並不在於繪製各類的圖形,因為每種圖形都有其對應的API。 ...
Matplotlib
庫是一個用於數據可視化和繪圖的 Python 庫。
它提供了大量的函數和類,可以幫助用戶輕鬆地創建各種類型的圖表,包括直方圖、箱形圖、散點圖、餅圖、條形圖和密度圖等。
使用 Matplotlib
的過程中,遇到的難點並不在於繪製各類的圖形,因為每種圖形都有其對應的API。
難點在於對繪製的圖形進行調整,這些調整包括:
- 圖形的大小
- 多個圖形的組合
- 坐標軸的方向,刻度的精度
- 圖形的顏色和字體
等等。
進行這些調整需要對 Matplotlib
的繪圖機制和其中的主要元素有個整體的瞭解。
本篇首先整體介紹下Matplotlib
繪製的圖形中的主要元素,然後重點介紹下其中第一個重要的元素--畫布。
1. 主要元素
下麵繪製一個簡單的圖形來演示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
的主要元素。
後續的文章會介紹各個主要元素的常用屬性,最終的目的是能夠靈活的繪製出符合顯示要求的圖形,而不僅僅只是繪製出圖形。
本篇介紹的主要元素是畫布。
2. 畫布
畫布是其他所有的元素的載體,可以說是最重要,也是最容易被忽視的元素。
繪製圖形之前,第一件事就是創建畫布。
2.1. 主要屬性
創建畫布之後,一般主要用到的屬性是調整畫布的大小和顏色。Matplotlib
畫布的大小通過設置英寸和dpi
來實現,dpi
表示一英寸有多少像素。
2.1.1. 畫布大小
比如下麵的示例:
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)
2.1.2. 畫布顏色
除了大小,設置畫布的顏色也是比較常用的。
顏色主要有兩種,背景色和邊框顏色(預設的邊框寬度是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)
2.2. 主要方法
除了屬性,畫布還有幾個方法也是經常使用的。
2.2.1. 設置標題
上面的示例中已經包含了,也就是 suptitle()
方法。
2.2.2. 添加子圖
添加子圖用 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)
2.2.3. 保存圖像
畫布還有個重要的功能就是把顯示的圖形保存下來,即 savefig()
方法。
可以把繪製的圖形保存到磁碟,用於分享或者製作報告。
fig.savefig("d:/share/image.png")
3. 總結回顧
畫布讓我們可以整體上設置圖形的質量和排版,分析和作圖過程中雖然不用過多考慮它,但是最終如果要出報告和文檔時,畫布的設置就會變得重要。
畫布是繪圖的第一步,接下來這個系列會逐步介紹 Matplotlib
的其他主要元素。