一. 基本概念(組成)
- matplotlib組成: 由棧組成, 分爲三層: Scripting(腳本), Artist(美工),Backend(後臺).
- 在整個matplotlib中, 圖形中所能看到的元素都屬於Artist對象, 即標題, 軸標籤, 刻度等組成的所有元素都是Artist對象的實例.
(1) 如果把Artist比做畫畫的話, Figure相當於畫板, Axes(座標系)相當於畫畫的白紙, Axis(座標系)相當於白紙上畫的座標系
所以, 可以說一個畫布(figure)可以有多個Axes(座標系), 一個座標系可以有多個Axis(座標軸), 包含兩個即爲2D座標系, 包含三個即爲3D座標系.
(2) Subplot實際上是axes的特例(子集) , 就是一個畫布上多畫幾個Axes(座標系),再縮小到特定位置,就是Subplot了. 相當於MATLAB中的一個圖中有好幾個座標系
二. 入門應用
1. 繪製直線
import matplotlib.pyplot as plt
# 當plot中參數只有一個列表時, 列表中數字代表縱座標, 橫座標從0開始
plt.plot([4, 6, 3, 6, 8, 7])
plt.show()
import matplotlib.pyplot as plt
# 當plot中參數有兩組列表時, 第一組代表橫座標, 第二組代表縱座標
plt.plot([0, 1, 2, 3, 4, 5, ], [1, 2, 3, 4, 5, 6])
plt.show()
2. 簡單應用: 繪製溫度變化折線圖
import matplotlib.pyplot as plt
import random
# 生成fig畫布在上面畫圖. figsize爲設置圖片尺寸, dpi爲設置圖片透明度, 數字越大透明度越高
plt.figure(figsize=(20, 8), dpi=80)
# 編碼中文顯示問題, 輸入這兩行代碼可以讓圖中的中文正常顯示
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
# 準備x, y座標的數據
x = range(60) # 橫座標
# 上海天氣縱座標
y_shanghai = [random.uniform(15, 18) for i in x]
# 北京天氣縱座標
y_beijing = [random.uniform(3, 5) for i in x]
# 橫座標時間數據
x_ch = ["11點{}分".format(i) for i in x]
# 縱座標數據
y_ticks = range(40)
# 上海折線圖繪製
plt.plot(x, y_shanghai, label='上海')
# 北京折線圖繪製(x爲x軸, y_beijing爲y軸, color爲線條顏色, linestyle爲線條樣式, label爲綁定標籤'北京')
plt.plot(x, y_beijing, color='r', linestyle='--', label='北京')
# 顯示刻度, 間隔(步長)
plt.xticks(x[::5], x_ch[::5]) # 橫座標步長間隔5
plt.yticks(y_ticks[::5]) # 橫座標步長間隔5
# 曲線圖的各種屬性
plt.xlabel("時間") # 橫座標屬性
plt.ylabel("溫度") # 縱座標屬性
plt.title("一些城市的溫度變化曲線圖") # 座標軸標題
# 圖中加入註釋(圖片右上角標誌)
plt.legend(loc="best")
# 保存圖片(我的圖片位置爲: C:\Users\admin)
plt.savefig("matplotlib.png")
# 顯示
plt.show()
運行結果如下圖 :