使用matplotlib画栈式直方图

平时我们只对一组数据做直方图统计,这样我们只要直接画直方图就可以了。

但有时候我们同时画多组数据的直方图(比如说我大一到大四跑大学城内环的用时的分布),大一到大四用不同颜色的直方图,显示在一张图上,这样会很直观。

#!/usr/bin/env python
# -*- coding: utf-8 -*- 
#http://blog.csdn.net/sunny2038/article/details/9002531
# 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()


以上图为例,很明显看到蓝色直方图(大一)跑得最快,黄色(大四)直方图跑得最慢。

唉,岁月是把杀猪刀啊。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值