1. 程式人生 > >matplotlib在同一座標系上繪製多條曲線 及在多個子圖上繪圖

matplotlib在同一座標系上繪製多條曲線 及在多個子圖上繪圖

(作者:陳玓玏)

用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曲線。