1. 程式人生 > >matplotlib 使用簡明教程(三)-一些專業圖表簡介

matplotlib 使用簡明教程(三)-一些專業圖表簡介

這裡對一些不太瞭解領域的庫進行簡要的介(fan)紹(yi),感興趣的讀者可以自行了解。 這些圖表都在 matplotlib.pyplot 中進行了封裝。

統計、概率分佈

plt.boxplot(x,**kwargs)

繪製箱形圖

在這裡插入圖片描述

重要引數:

  • x:輸入的引數,可以是一個二維陣列
  • positions:每個箱的位置
  • vert:True 為圖表方向垂直,False 為水平
  • whis:設定內限(上下邊緣)與四分位距的關係,預設 1.5
  • usermedians:使用該引數中的資料代替 x 中計算得出的均值
  • labels:標籤的陣列

在這裡插入圖片描述

關於箱型圖

  • 上四分位 Q3
  • 下四分位 Q1
  • 四分位距 IQR=Q3-Q1
  • 異常值截斷點(內限) Q3+1.5IQR和Q1-1.5IQR
  • 外限 Q3+3IQR和Q1-3IQR
  • 溫和的異常值 內限與外限之間的異常值
  • 極端的異常值 外限意外的異常值

plt.violinplot(dataset, positions=None, vert=True, widths=0.5, showmeans=False, showextrema=True, showmedians=False, points=100, bw_method=None, hold=None, data=None)

琴形圖和箱形圖式非常類似的,不過琴形圖會把分佈狀況也表現出來

在這裡插入圖片描述

重要引數:

  • dataset:將要繪製的資料集
  • positions:繪製琴的位置
  • vert:True 為圖表方向垂直,False 為水平
  • showmeans:是否顯示均值
  • showextrema:是否顯示極值
  • showmedians:是否顯示中位數

分級圖

plt.hexbin(x, y, C=None, gridsize=100, bins=None, **kwargs)

根據資料座標的分佈繪製分級圖

在這裡插入圖片描述

重要引數:

  • x, y:兩個一維陣列,將根據 x[i],y[i] 組成座標的分佈,繪製分級圖
  • C:一維陣列
    • C[i] 將會規定 (x[i], y[i])座標的權重,繪製時,某個座標點的權重會進行平均處理
    • 當 C 為 None 時,x[i],y[i] 座標的權重為 1 且結果不做平均值處理。
  • gridsize:預設 100,x 軸方向的六邊形數量;y 軸的六邊形數量會進行調整
  • bins:分級的方式
    • None :直接分級,六邊形的顏色即反應數量
    • ‘log’ :按照 log10(i+1)log_{10}(i+1) 決定六邊形顏色
    • 一個整數:該整數決定等級的數量
    • 一個整數序列:按照給定的整數序列確定每個分級的底線
  • xscale,yscale:x、y 軸的掃描方式,‘linear’ 或 ‘log’
  • mincnt:不顯示數量小於 mincnt 的六邊形

plt.pcolormesh([X, Y,] C, **kwargs)

根據座標情況繪製“偽色圖”,即通過顏色的冷暖而不是亮暗來顯示影象。

在這裡插入圖片描述

  • C:代表顏色深度的二維陣列
  • X、Y:座標的一維陣列,可選

染色方式如下:

在這裡插入圖片描述

plt.hist(x, bins=None, **kwargs)

繪製柱狀圖,與 plt.bar() 的區別在於,hist 函式的引數是離散的資料,需要計算分佈結果後繪製;而 bar 函式的引數是直接的柱體高度。

在這裡插入圖片描述

重要引數:

  • x:一組或多組離散資料點,每組的資料不要求長度相同。
  • weights:每個資料點的權重
    • 一個與 x 形狀保持一致的陣列,表示每個資料點的權重,結果會進行累加
    • None,每個資料點權重為 1
  • bins:分級的方式
    • ‘auto’ :自動分級
    • 一個整數:該整數加 1 決定等級的數量
    • 一個整數序列:按照給定的整數序列確定每個分級的底線
  • range:一個元組資料,決定分級的最小、最大值
  • bottom:決定分級的基底
    • 一個數字:所有資料點的基底都由該數字決定
    • 一個數組:分別決定每個分佈的基底
  • density:是否使用概率密度函式顯示分佈結果

plt.hist2d(x, y, bins=10, range=None, normed=False, weights=None, cmin=None, cmax=None, hold=None, data=None, **kwargs)

繪製二維的柱狀圖,類似 hexbin 函式,不過每個小格是正方形的。

重要引數:

  • x,y:兩個一維陣列,輸入的資料點座標資訊
  • bins:決定分級方式
    • int,決定 x、y 的分級數
    • [int, int] 分別決定 x、y 的分級數
    • array 決定 x、y 每級的範圍
    • [array, array] 分別決定 x、y 的每級的範圍
  • range:一個 2x2 的矩陣,決定圖表範圍
  • weights:None 或一個一維陣列,weights[i] 決定 (x[i], y[i]) 座標資料點的權重;預設權重為 1
  • normed:是否使用數量而不是概率密度函式來顯示資料

頻譜分析

函式名 簡介
acorr 繪製 x 的自相關函式
xcorr 繪製 x 有 y 的互相關性
angle_spectrum 繪製角頻譜圖
magnitude_spectrum 繪製強度頻譜圖
phase_spectrum 繪製相位譜圖
cohere 繪製 x 與 y 的相干性圖
scd 繪製互譜密度
psd 繪製功率譜密度
spectrogram 短時傅立葉變換

等高線

函式名 簡介
clabel 給一條等高線新增標註
contour 繪製等高線
contourf 在等高線間填充

場/流

函式名 簡介
barbs 風速場
quiver 箭頭圖
quiverkey 給 quiver 添加註釋表填
streamplot 帶有場的箭頭