matplotlib在同一座標系上繪製多條曲線 及在多個子圖上繪圖
阿新 • • 發佈:2019-02-20
(作者:陳玓玏)
用matplotlib畫圖時,常常需要實現兩類功能,一類是在一個座標軸上畫多條曲線,能夠清楚地看到多條曲線的對比情況。另一種情況是在同一個視窗的不同子圖上畫圖,多用於呈現不同內容的曲線,沒有對比關係的曲線圖。其實根本區別在於,是在同一對座標軸上畫圖,還是在不同的座標軸上畫圖。
一、同一座標系上繪製多條曲線
首先自然是引入matplotlib包,這個包可以畫散點圖、線圖、柱形圖等等,是很好的資料視覺化工具。其他的不多說,看註釋。
import matplotlib.pyplot as plt
import numpy as np
#開啟一個視窗,num設定子圖數量,figsize設定視窗大小,dpi設定解析度
fig = plt.figure(num=1, figsize=(15, 8),dpi=80)
#直接用plt.plot畫圖,第一個引數是表示橫軸的序列,第二個引數是表示縱軸的序列
plt.plot(np.arange(0,1,0.1),range(0,10,1))
plt.plot(np.arange(0,1,0.1),range(0,20,2))
#顯示繪圖結果
plt.show()
二、在不同子圖上繪圖
import matplotlib.pyplot as plt
import numpy as np
#開啟一個視窗,num設定子圖數量,這裡如果在add_subplot裡寫了子圖數量,num設定多少就沒影響了
#figsize設定視窗大小,dpi設定解析度
fig = plt.figure(num=2, figsize=(15, 8),dpi=80)
#使用add_subplot在視窗加子圖,其本質就是新增座標系
#三個引數分別為:行數,列數,本子圖是所有子圖中的第幾個,最後一個引數設定錯了子圖可能發生重疊
ax1 = fig.add_subplot(2,1,1)
ax2 = fig.add_subplot(2,1,2)
#繪製曲線
ax1.plot(np.arange(0,1,0.1),range(0,10,1),color='g')
#同理,在同一個座標系ax1上繪圖,可以在ax1座標系上畫兩條曲線,實現跟上一段程式碼一樣的效果
ax1.plot(np.arange(0,1,0.1),range(0,20,2),color='b')
#在第二個子圖上畫圖
ax2.plot(np.arange(0,1,0.1),range(0,20,2),color='r')
plt.show()
畫圖在進行模型評估時很常用,在進行變數評估時也可以用,能夠提前檢視變數的分佈情況,也可以檢視模型預測結果的AUC曲線和KS曲線。