matplotlib:面向對象繪圖
來自專欄 DataCode
matplotlib系列文章:
Matplotlib:入門一
Matplotlib:入門二
Matplotlib:繪製各種圖形
Matplotlib:條形圖(續)
matplotlib:箱線圖
之前的繪圖方式都是用pyplot
的API方式繪圖的,matplotlib本身是一個面向對象的繪圖庫,下面介紹一下使用面向對象繪圖方式繪圖,及產生網格,圖例顯示。
整體思想是先產生figure畫布對象,在畫布上產生子圖對象,接著調整坐標軸,標題,圖例,網格,文字說明等,按照從大到小的順序。
示例代碼如下:
import matplotlib.pyplot as pltimport numpy as npx = np.arange(1,10,1)y = np.random.randn(len(x))fig = plt.figure() #產生一個畫布ax = fig.add_subplot(111) #在畫布上創建一個子圖ax.plot(x,y)ax.set_title("object oriented") #設置子圖標題plt.show()
只創建畫布:
import matplotlib.pyplot as pltimport numpy as npx = np.arange(1,100,1)fig = plt.figure()ax1 = fig.add_subplot(211)plt.show()
在畫布上創建兩個子圖(一行兩列),只顯示一個
import matplotlib.pyplot as pltimport numpy as npx = np.arange(1,100,1)fig = plt.figure()ax1 = fig.add_subplot(121)ax1.plot(x,x)plt.show()
在畫布上創建兩個子圖(一行兩列),都顯示出來
import matplotlib.pyplot as pltimport numpy as npx = np.arange(1,100,1)fig = plt.figure()ax1 = fig.add_subplot(121)ax1.plot(x,x)ax2 = fig.add_subplot(122)ax2.plot(x,x*x)plt.show()
另外,可以通過fig,ax = plt.subplots() 函數一次返回畫布和子圖對象。無參數表示只在畫布上創建一個子圖對象。
添加網格
import matplotlib.pyplot as pltimport numpy as npx = np.arange(1,10)fig = plt.figure()ax = fig.add_subplot(111)ax.plot(x,x*2)ax.grid(color=g,linestylex=--)plt.show()
顯示圖例
import matplotlib.pyplot as pltimport numpy as npx = np.arange(1,11)fig = plt.figure()ax = fig.add_subplot(111)ax.plot(x,x,label=inline label)ax.legend()plt.show()
ax.legend(loc=0) 有個loc參數,默認空缺是0,表示尋找最優位置。然後1,2,3,4分別表示右上,左上,坐下,右下位置。
參考課程:http://www.maiziedu.com/course/709/
公眾號DataCode 後台回復 可視化,發送可視化系列python源碼。
推薦閱讀:
※【深度學習系列】CNN模型的可視化
※可視化 服裝3D結構設計(製版)
※【R可視化】將薪比薪
※畫給設計師看的營銷大法
※詩豪:劉禹錫寫詩用字分析(唐代詩人寫詩用字分析之三)
TAG:Python | Matplotlib | 可視化 |