matplotlib 直方圖繪制詳解


n, bins, patches = plt.hist(datasets, bins, normed=False, facecolor=None, alpha=None)

函數說明

用於繪制多個數據集datasets的直方圖


主要形參:

  1. datasets: 數據集列表, datasets中各個數據集的長度可以不等, 也可以傳入numpy中的 2-D ndarray
  2. bins: 直方圖中箱子(bin)的個數
  3. facecolor: 箱子的顏色
  4. alpha: 箱子的透明度
  5. normed: 決定直方圖y軸取值是落在某個箱子中的元素的個數(normed=False或normed=0),
    還是某個箱子中的元素的個數占總體的百分比(normed=True或normed=1)

函數返回值: 返回值為一個元組(tuple)

  1. n: 直方圖中 數據x落在 某個箱子里元素個數(或者占比)組成的數組
  2. bins: 直方圖中 箱子取值(可能是落在該區間的x的均值)組成的數組
  3. patches: 是一個封裝了 p 和 n信息的列表的集合(Patch對象)

例子

import numpy as np
import matplotlib.pyplot as plt

# Fixing random state for reproducibility
# np.random.randn 這個函數的作用就是從標准正態分布中返回一個或多個樣本值
# seed(): 設置種子是為了輸出圖形具有可重復性
np.random.seed(20170617)
mu, sigma = 100, 15
x = mu + sigma * np.random.randn(10000)
p, bins, patches = plt.hist(x, 50, normed=True, facecolor='g', alpha=0.75)

hist01

改變形參 bins, facecolor, normed

設置 bins=10, facecolor=cyan, normed=0
通過下圖可以看到 箱子個數, 顏色, 以及 y軸的變化

p, bins, patches = plt.hist(x, 10, normed=0, facecolor='cyan', alpha=0.75)

hist02

datasets為多個一維數據集

import numpy as np
import matplotlib.pyplot as plt

np.random.seed(20170617)
mu, sigma = 100, 15
x1 = mu + sigma * np.random.randn(10000)

np.random.seed(20160617)
x2 = mu + sigma * np.random.randn(3000)
p, bins, patches = plt.hist((x1,x2), 10, normed=0, alpha=0.4)

hist03

datasets 為 2D-ndarray

import numpy as np
import matplotlib.pyplot as plt

np.random.seed(20170617)
mu, sigma = 100, 15
t = np.random.randn(3600)
t.shape = (900, 4)
x = mu + sigma * t

p, bins, patches = plt.hist(x, 5, normed=10, alpha=0.4)

hist5


免責聲明!

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



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