matplotlib 繪圖的核心原理


matplotlib是基於Python語言的開源項目,旨在為Python提供一個數據繪圖包。使用matplotlib繪圖時,必須理解畫布(figure),區域(axe)和坐標軸(axis)的區別。figure是畫布,而區域axe是畫布上的一個子圖(subplot),axis是子圖上的坐標系。

下圖顯示了figure(畫布)、axes(坐標系)、axis(坐標軸)三者之間的關系。

一,導入相關庫

導入常用的庫,並設置畫布的參數:

import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt

# 排除警告信息
import warnings
warnings.filterwarnings("ignore")

# 打印版本信息
display(np.__version__)
display(pd.__version__)
display(mpl.__version__)

# matplotlib畫圖常見參數設置
mpl.rcParams["font.family"] = "SimHei" # 設置字體
mpl.rcParams["axes.unicode_minus"]=False # 用來正常顯示負號
plt.rcParams['font.sans-serif']=['SimHei'] # 用來正常顯示中文標簽

# 嵌入式顯示圖形
%matplotlib inline  

二,創建畫布

創建畫布的方式有顯式和隱式兩種,本文顯式創建畫布,添加子圖,並設置子圖在畫布中的位置:

# 手動創建一個figure對象
figure = plt.figure()
# 獲取每個位置的axes對象
axes1 = figure.add_subplot(2,1,1)
axes2 = figure.add_subplot(2,1,2)

函數add_subplot()的功能:切分畫布,指定當前子圖的區域,並返回該區域的引用。

在繪圖完成之后,可以通過plt.show() 或者figure.show()把圖形顯示出來。

 舉例說明,在一塊畫布中繪制兩個折線圖:

figure = plt.figure()
axes1 = figure.add_subplot(2,1,1)
axes2 = figure.add_subplot(2,1,2)

axes1.plot([1,3,5,7],[4,9,6,8])
axes2.plot([1,2,4,5],[8,4,6,2])
plt.show()

 

 三,細節設置

 

* figure 畫布
* axes 坐標系,一個畫布上可以有多個坐標系
* axis 坐標軸,一個坐標系中可以有多個坐標軸,一般都是二維平面坐標系,或者三維立體坐標系
* title 標題
* legend 圖例
* grid 背景網格
* tick 刻度
* axis label 坐標軸名稱
* tick label 刻度名稱
* major tick label 主刻度標簽
* minor tick label 副刻度標簽
* line 線
* style 線條樣式
* marker 點標記
* font 字體相關

 

參考文檔:

matplotlib繪圖的核心原理講解(超詳細)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM