Python基于matplotlib绘制栈式直方图的方法示例

yipeiwu_com5年前Python基础

本文实例讲述了Python基于matplotlib绘制栈式直方图的方法。分享给大家供大家参考,具体如下:

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

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

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#//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相关内容感兴趣的读者可查看本站专题:《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总

希望本文所述对大家Python程序设计有所帮助。

相关文章

Pandas DataFrame数据的更改、插入新增的列和行的方法

Pandas DataFrame数据的更改、插入新增的列和行的方法

一、更改DataFrame的某些值 1、更改DataFrame中的数据,原理是将这部分数据提取出来,重新赋值为新的数据。 2、需要注意的是,数据更改直接针对DataFrame原数据更改,...

python3实现高效的端口扫描

我们通过python-nmap实现一个高效的端口扫描工具,与定时作业crontab及邮件告警结合,可以很好的帮助我们及时发现异常开放的高危端口。当然,该工具也可以作为业务服务端口的可用性...

HTML中使用python屏蔽一些基本功能的方法

进行数据解析的理由不计其数,相关的工具和技巧也同样如此。但是,当您需要用这些数据做一些新的事情时,即使有“合适的”工具可能也是不够的。这一担心对于异类数据源的集成同样存在。用来做这项工作...

python进程和线程用法知识点总结

python进程和线程用法知识点总结

今天我们使用的计算机早已进入多CPU或多核时代,而我们使用的操作系统都是支持“多任务”的操作系统,这使得我们可以同时运行多个程序,也可以将一个程序分解为若干个相对独立的子任务,让多个子任...

django组合搜索实现过程详解(附代码)

django组合搜索实现过程详解(附代码)

一.简介 # 组合搜索 # 技术方向:自动化,测试,运维,前端 # 分类:Python Linux JavaScript OpenStack Node.js GO #...