首頁  >  文章  >  後端開發  >  Python中matplotlib如何繪製堆疊式直方圖的範例

Python中matplotlib如何繪製堆疊式直方圖的範例

黄舟
黄舟原創
2017-08-09 10:49:161316瀏覽

這篇文章主要介紹了Python基於matplotlib繪製棧式直方圖的方法,涉及Python使用matplotlib進行圖形繪製的相關操作技巧,需要的朋友可以參考下

本文實例講述了Python基於matplotlib繪製棧式直方圖的方法。分享給大家供大家參考,具體如下:

平常我們只對一組資料做直方圖統計,這樣我們只要直接畫直方圖就可以了。

但有時候我們同時畫出多組數據的直方圖(比如說我大一到大四跑大學城內環的用時的分佈),大一到大四用不同顏色的直方圖,顯示在一張圖上,這樣會很直覺。


#!/usr/bin/env python
# -*- coding: utf-8 -*-
#http://www.jb51.net/article/100363.htm
# numpy array intorduction
#http://matplotlib.org/examples/statistics/histogram_demo_multihist.html
import numpy as np
import pylab as P
import matplotlib
d1=np.array([18.46,19.15,18.13 ,18.30 ,18.07 ,18.24 ,18.26 ,
     17.14 ,18.44 ,18.06 ,17.44 ,16.57 ,16.34 ,17.21 ])
d1=d1//1+(d1-d1//1)/0.6
d2=np.array([19.33 ,19.06 ,18.10 ,17.55 ,19.55 ,19.13 ,18.54 ,
     18.30 ,18.36 ,19.59 ,20.01 ,19.17 ,19.30 ,18.54 ,18.35 ,20.04 ])
d2=d2//1+(d2-d2//1)/0.6
d3=np.array([20.52 ,20.41 ,19.20 ,19.04 ,19.09 ,19.01 ,17.49 ,19.18 ,20.01 ,20.11 ])
d3=d3//1+(d3-d3//1)/0.6
d4=np.array([22.02 ,21.03,21.06 ,20.46 ,19.46 ,20.15 ,19.49 ,19.43 ,
       19.51 ,19.39 ,19.33 ,19.18 ,19.13 ,19.22 ,18.46 ,19.07 ,
       18.57 ,18.45 ,19.17 ,18.41 ,18.30 ])
d4=d4//1+(d4-d4//1)/0.6
x=([d1,d2,d3,d4])
P.figure()
#normed is False is good
n, bins, patches = P.hist(x, 12, [16.5, 22.5],normed=0, histtype='barstacked',
              color=['blue', 'green', 'red','yellow'],
             label=['   ', '   ', '   ','   '])
print type(x)
P.legend()#legend should be signed after set down the information
P.show()

以上圖為例,很明顯看到藍色直方圖(大一)跑得最快,黃色(大四)直方圖跑得最慢。

以上是Python中matplotlib如何繪製堆疊式直方圖的範例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn