Python之資料視覺化——matplotlib系統介紹(一)

2020-09-28 12:01:40

matplotlib基礎系統介紹

目錄

1. Matplotlib概述

2. 講解Matplotlib核心原理

3. Matplotlib相關基礎操作介紹

  • 3.1 建立figure(畫布)的方式及完整繪圖步驟
  • 3.2 線型設定
  • 3.3

1.Matplotlib概述

Matplotlib 是一個基於python 的繪相簿,完全支援二維影象,有限支援三維圖形,Matplotlib是python程式語言及其資料科學擴充套件包NumPy的視覺化操作介面庫。它利用通過的圖形化使用者介面工具包(如Tkinter、wxPython 、Qt、FLTK、Cocoatoolkits或GTK+)嚮應用程式嵌入式繪圖提供了應用程式介面(API)。此外,Matolotlib還有一個基於影象處理庫(如圖形庫OpenGL)的pylab介面,其設計與MATLAB非常類似。SciPy就是用Matplotlib進行圖形繪製。


2. 講解Matplotlib核心原理

想認識matplotlib繪圖的原理就必須清楚的理解figure(畫布)、axes(座標系)、axis(座標軸)三者之間的關係
在這裡插入圖片描述
類似畫畫,首先需要一張畫布,對於matplotlib相當於初始化了一張figure(畫布),然後一張畫布可以分配出不同的區域進行畫畫,相當於figure可以指定多個axes(座標系),而在每個axes(座標系)上繪圖,相當於每個axes(座標系)中都有一個axis(座標軸)

  • 畫圖的實現
    在這裡插入圖片描述
  • matplotlib繪圖實現
    在這裡插入圖片描述

3. Matplotlib相關基礎操作介紹

3.1建立figure(畫布)的方式及完整繪圖步驟
一、建立figure(畫布)的方式
  • 隱式建立
  • 顯示建立

①隱式建立figure物件

先觀察下面程式碼
import matplotlib.pyplot as plt
x = [-1, 3, 5, 0]
y = [4, -9, 2, 8]
plt.plot(x, y)
plt.show()

在這裡插入圖片描述
看到上面的結果,可能會有疑問,在前面的敘述中,我們已經說過,想要使用matplotlib繪圖,必須先要建立一個figure(畫布)物件,可是上面的程式碼並沒有建立,這是為什麼呢?

  • 這是因為在第一次執行plt.xxx()這句程式碼時,系統就會自動地去判斷是否已經有了figure物件,如果沒有,系統會自動建立一個figure物件,並且在這個figure之上,自動建立一個axes座標系。
    注意:
    1. 當我們只是繪製一個圖形時,那麼直接plt.xxx(),系統會自動幫我建立一個figure物件和一個axes座標系。
    2.這也意味著如果我們不設定figure物件,那麼一個figure物件上,只能有一個axes座標系,即我們只能繪製一個圖形。

②顯式建立figure物件

  • 對於不同的圖,想讓他分佈在不同的圖上,那麼就得用plt.figure進行設定,以plt.figure( )開頭,獲取每個axes(座標系)
    觀察下面基本建立程式碼,後面會詳細介紹
import matplotlib.pyplot as plt
figure = plt.figure()  # 建立figure(畫布)
figure.add_subplot(2,2,1)
figure.add_subplot(2,2,2)
figure.add_subplot(2,2,3)
figure.add_subplot(2,2,4)
plt.plot()
plt.show()

在這裡插入圖片描述
匯入資料之後的結果

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-2,2,200)
y1 = 2 * x + 1
y2 = 2*x**2
y3 = 1/x
y4 = x ** 0.5
figure = plt.figure()
axes1 = figure.add_subplot(2,2,1)
axes2 = figure.add_subplot(2,2,2)
axes3 = figure.add_subplot(2,2,3)
axes4 = figure.add_subplot(2,2,4)
axes1.plot(x, y1)
axes2.plot(x, y2)
axes3.plot(x, y3)
axes4.plot(x, y4)
plt.show()

結果如下圖所示
在這裡插入圖片描述

二、完整的繪圖步驟
  • 初步認識建立figure後,我瞭解基本的繪圖步驟

① 導庫

# 我們主要用的是matplotlib中的pyplot
import matplotlib.pyplot as plt 

② 建立figure畫布物件

  • 如果繪製一個簡單的小圖形,可以不設定figure物件,系統預設建立的figure物件。

  • 如果需要繪製多個圖形,那麼就必須建立figure物件並且得到每個位置上的axes物件,再對每個axes相應的位置進行繪製。

③ 根據figure物件進行佈局設定

figure = plt.figure()  #只有一個座標系
figure.add_subplot(1, 1, 1)
plt.show()

figure = plt.figure()  # 圖一
figure.add_subplot(1, 2, 1)
figure.add_subplot(1, 2, 2)
plt.show()

figure = plt.figure()  # 圖二
figure.add_subplot(2, 2, 1)
figure.add_subplot(2, 2, 2)
figure.add_subplot(2, 2, 4)
plt.show()

在這裡插入圖片描述

根據上面程式碼自行測試得出規律

④ 獲取對應的axes座標系物件

figure = plt.figure()
axes1 = figure.add_subplot(2,2,1)
axes2 = figure.add_subplot(2,2,2)
axes3 = figure.add_subplot(2,2,3)
axes4 = figure.add_subplot(2,2,4)

⑤ 對相應位置的圖形進行繪製
繪製圖形關鍵一步:傳入資料,並對繪製圖形的一些細節進行設定。如下例子,相關知識點後續會介紹;

x = np.linspace(-2, 2, 200)
y2 = 2 * x ** 2
plt.plot(x, y2, 'b-o', lw=5, marker='o', mfc='r')
plt.show()

在這裡插入圖片描述

⑥ 顯示圖形

如果是在pycharm中繪圖的話,必須要加下面程式碼,才能顯示
plt.show()
至於figure.show()不知道是本人的版本問題還是怎麼樣,在pycharm中沒效果
如果使用Jupyter Notebook 則不需要,自動顯示

3.2 線型設定

線型設定主要四種

  • ①顏色
  • ②點標記
  • ③線條樣式
  • ④透明度設定
常用的引數名 (小括號為簡寫)引數介紹
color( c )線條顏色
linestyle(ls)線條形狀
linewidth(lw)線的寬度
marker點標記形狀
markersize(ms)點標記的大小
markeredgecolor(mec)點邊緣顏色
markeredgewidth(mew)點邊緣寬度
markerfacecolor(mfc)點的顏色

舉例:

plt.plot([5, 6, 7, 8], [1, 2, 3, 4], color='blue', linestyle='--',
         linewidth=5, marker='^', markeredgecolor='green', markersize=7,
         markeredgewidth=2, markerfacecolor='red',
         )
plt.show()

或簡寫

plt.plot([5, 6, 7, 8], [1, 2, 3, 4], color='blue', ls='--',
         lw=5, marker='^', mec='green', ms=7,
         mew=2, mfc='red',
         )
plt.show()

在這裡插入圖片描述

①顏色

常用顏色:

  • 顏色:藍色"b" 綠色"g" 紅色"r" 青色"c" 品紅"m" 黃色"y" 黑色"k" 白色"w"
# color語法
plt.plot([4,7,1,0],[1,3,9,2],color='r')

顏色大全
在這裡插入圖片描述

②點標記
color引數說明marker引數說明linestyle引數說明
r紅色.點標記-直線
y黃色o圓圈標記虛線
g綠色v下三角形標記:點線
b藍色^上三角形標記-.點畫線
w白色<左三角形標記
k黑色>右三角形標記
m品紅s正形標記
c青色p五邊形標記
*五角形標記
h六邊形標記
++號標記
xx標記
D大菱形標記
d小菱形標記
l豎線標記
_橫線標記
③線條樣式
線條樣式大全說明
-直線
虛線
:點線
-.點畫線

簡寫:色、點標記與線型可以使用一個引數設定進行簡化

  • 格式:顏色、點標記樣式、線條樣式位置可互換
  • 注意:簡化設定引數除這三者之外不需要再新增任何東西
  • 舉例:ro-- 、b:o 、*-.g 、-y<

程式碼測試

plt.plot([4, 7, 1, 0], [1, 3, 9, 2], '*-.g')
plt.show()

結果如下
在這裡插入圖片描述

④透明度設定

1. 介紹:
可以通過alpha引數來設定影象的透明度,alpha引數的值範圍在 0(完全透明) ~ 1(不透明)

2. 舉例說明:

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-2,2,200)
y1 = 2 * x + 1
y2 = 2*x**2
plt.plot(x,y1,'r*:',alpha=0.1)
plt.plot(x,y2,'b<-.',alpha=0.7)
plt.show()

結果如下:
在這裡插入圖片描述

後面每晚我會持續更新,有什麼不足的歡迎小夥伴們在評論交流