????Matplotlib 可能是 Python 2D-繪圖領(lǐng)域使用最廣泛的套件。它能讓使用者很輕松地將數(shù)據(jù)圖形化,并且提供多樣化的輸出格式
matplotlib三層結(jié)構(gòu)
1. 容器層
對畫布進(jìn)行創(chuàng)建,定義相關(guān)屬性
- 畫板層Canvas
- 畫布層Figure(可指定畫布屬性,大小、清晰度等)
- 繪圖區(qū)/坐標(biāo)系(可指定多區(qū)域、坐標(biāo)系顯示,通過figure、axes對象)
2. 輔助顯示層
增加相關(guān)顯示功能、描述
- 修改x、y軸刻度(plt.x/yticks())
- 添加描述信息(plt.x/ylabel();plt.title())
- 添加網(wǎng)格(plt.grid())
3. 圖像層
具體描繪的圖像風(fēng)格、種類等等
I. 折線圖
plt.plot()
設(shè)置畫布屬性以及保存圖像
figsize:大小 dpi:清晰度
plt.subplots
figure, axes = plt.subplots(nrows=1, ncols=2, **fig_kw)
axes[0].方法名()
II. 散點圖
plt.scatter(x,y)
III. 柱狀圖
matplotlib.pylot.bar(x,y, width, align='center', **kwargs)
IV. 直方圖
matplotlib.pylot.hist(x,y, bins=None, normed=None, **kwargs)
bins(組數(shù)) = (max(x)-min(x))//(組距)
V. 餅圖
plt.pie(x, labels=autopct=,color=)
x,數(shù)量,自動計算占比
labels,每部分名稱
actopct 占比顯示指定%1.2f%%
color 每部分顏色
plt.axis('equal')——保證餅圖圓形,保證長寬一致
總結(jié)
????總得來說,Matplotlib繪圖過程無非幾步:
1. 準(zhǔn)備數(shù)據(jù)
2. 創(chuàng)建畫布
3. 繪制圖像(根據(jù)不同圖像類別調(diào)用不同方法)
4. 輔助繪制(刻度、圖例等)
5. 圖像顯示/保存
- 更多相關(guān)方法可以去官網(wǎng)的api上查詢文檔:matplotlib:
示例( 溫度變化折線圖)
import matplotlib.pyplot as plt
import random
if __name__ == '__main__':
#準(zhǔn)備數(shù)據(jù)
x = range(60)
y_shanghai = [random.uniform(15, 18) for i in x]
#創(chuàng)建畫布
plt.figure(figsize=(20, 8), dpi=80)
#繪制圖像
plt.plot(x, y_shanghai, color='b', linestyle='--', label='上海')
#顯示圖例
plt.legend()
#準(zhǔn)備x、y的刻度以及刻度說明
x_label = ["11點{}分".format(i) for i in x]
plt.xticks(x[::5], x_label[::5])
plt.yticks(range(0, 40, 5))
#添加網(wǎng)格
plt.grid(linestyle='--', alpha=0.5)
plt.xlabel("時間變化")
plt.ylabel("溫度變化")
plt.title("某城市11點到12點溫度變化")
plt.show()