matplotlib:面向對象繪圖

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分別表示右上,左上,坐下,右下位置。

參考課程:maiziedu.com/course/709

公眾號DataCode 後台回復 可視化,發送可視化系列python源碼。


推薦閱讀:

【深度學習系列】CNN模型的可視化
可視化 服裝3D結構設計(製版)
【R可視化】將薪比薪
畫給設計師看的營銷大法
詩豪:劉禹錫寫詩用字分析(唐代詩人寫詩用字分析之三)

TAG:Python | Matplotlib | 可視化 |