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 字體相關
參考文檔: