Python制作统计图形
转载自:http://www.dcharm.com/?p=15
Python一般使用Matplotlib制作统计图形,用它自己的说法是‘让简单的事情简单,让复杂的事情变得可能’。(你说国外的“码农”咋这么会说,我就整不出来这工整的句子!)用它可以制作折线图,直方图,条形图,散点图,饼图,谱图等等你能想到的和想不到的统计图形,这些图形可以导出为多种具有出版质量的格式。此外,它和ipython结合使用,确实方便,谁用谁知道!
在Matplotlib里面经常使用到的是pylab和pyplot,它之间的区别在于pyplot是封装好的调用matplotlib底层制图库的接口,制图时用户不用关心底层的实现,而pylab则是为了使用者的方便,将numpy和pyplot的功能集中在了一个命名空间中。这么解释,可能还是不太清楚,因此在此次举个例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
import pylab import numpy as np import matplotlib.pyplot as plt pylab.randn( 2 , 3 ) array([[ 1.22356117 , - 0.62786477 , - 0.02927331 ], [ 1.11739661 , - 1.64112491 , 2.24982297 ]]) np.random.randn( 2 , 3 ) array([[ - 1.41691502 , - 1.43500335 , - 0.68452086 ], [ - 0.53925581 , - 0.18478012 , - 0.0126745 ]]) pylab.hist([ 1 , 1 , 1 , 2 , 3 , 3 ]) plt.hist([ 1 , 1 , 1 , 2 , 3 , 3 ]) |
从上面的例子可以看在pylab中可以使用numpy中的一些方法,而在pyplot中不能使用numpy的方法;pylab和pyplot都可以制作统计图形。
接下来通过4个常用的统计图形–直方图,条形图,折线图和散点图来介绍首先matplot的使用。直方图和条形图主要刻画的是一维随机变量的分布,折线图和散点图主要刻画的是两个随机变量之间的相关性。首先要展示的是条形图:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
N = 5 ind = np.arange(N) width = 0.35 menMeans = ( 20 , 35 , 30 , 35 , 27 ) menStd = ( 2 , 3 , 4 , 1 , 2 ) womenMeans = ( 25 , 32 , 34 , 20 , 25 ) womenStd = ( 3 , 5 , 2 , 3 , 3 ) plt.bar(ind, menMeans, width, color = 'r' , yerr = menStd) plt.bar(ind + width, womenMeans, width, color = 'y' , yerr = womenStd) plt.title( 'Men-Women' ) |
图中红色的矩形代表的是Men,黄色代表的是Women,矩形的高度代表的是改组数据的均值,矩形顶部蓝色短线代表标准差,短线自矩形的顶部分别向上和向下延伸标准差的长度。
接下来要展示的是直方图,
1
2
3
4
5
6
7
8
|
x1 = 10 + 5 * np.random.randn( 10000 ) x2 = 20 + 5 * np.random.randn( 10000 ) num_bins = 50 plt.hist(x1, num_bins, normed = 1 , facecolor = 'green' , alpha = 0.5 ) plt.hist(x2, num_bins, normed = 1 , facecolor = 'blue' , alpha = 0.5 ) plt.title( 'Histogram' ) plt.show() |
上面的代码得到的图形
如果是连续性型随机变量,其中的每个矩形的高度表示该对应随机变量的概率密度函数的值,如果是离散型随机变量,其中每个矩形的高度代表对应随机变量的概率。条形图在使用时要事先计算出数据的均值和方差,而使用直方图时,pyplot会自动统计数据的分布;条形图主要刻画数据的样本均值和方差,直方图主要刻画样本的总体分布。
接下来要展示的是折线图,代码如下:
1
2
3
4
5
6
7
|
import numpy as np import matplotlib.pyplot as plt x = np.linspace( 0 , 10 , num = 100 ) y = np.sin(x) plt.plot(x,y) plt.show() |
得到的正弦函数的图形如下:
上面的图可以看做是y=sin(x)在区间[0,10]上的函数图形,每一个x有且只有一个y的值相对应,如果有多个y的值,则应该使用散点图。
1
2
3
4
5
6
7
8
|
import numpy as np import matplotlib.pyplot as plt x = np.random.randn( 1000 ) y = np.random.randn( 1000 ) plt.scatter(x,y) plt.title( 'Scatter' ) plt.show() |
得到散点图如下:
Python制作统计图形的更多相关文章
- python制作简单excel统计报表3之将mysql数据库中的数据导入excel模板并生成统计图
python制作简单excel统计报表3之将mysql数据库中的数据导入excel模板并生成统计图 # coding=utf-8 from openpyxl import load_workbook ...
- python制作简单excel统计报表2之操作excel的模块openpyxl简单用法
python制作简单excel统计报表2之操作excel的模块openpyxl简单用法 # coding=utf-8 from openpyxl import Workbook, load_workb ...
- 使用python制作ArcGIS插件(3)ArcPy的使用说明
使用python制作ArcGIS插件(3)ArcPy的使用说明 by 李远祥 ArcPy 是一个以成功的 arcgisscripting 模块为基础并继承了 arcgisscripting 功能进而构 ...
- Python代码统计工具
目录 Python代码统计工具 声明 一. 问题提出 二. 代码实现 三. 效果验证 Python代码统计工具 标签: Python 代码统计 声明 本文将对<Python实现C代码统计工具(一 ...
- python数据统计出海品牌
当国内市场处于红海之中时,市场全球化已成为大势所趋.越来越多的国产品牌远走高飞,纷纷将品牌拿出来. 2019年,中国品牌十大品牌中,华为品牌力指数同比增长22%,阿里巴巴品牌力指数增长48%,小米品牌 ...
- python数据统计,总数,平均值等
一般我们进行数据统计的时候要进行数据摸查,可能是摸查整体的分布情况啊.平均值,标准差,总数,各分段的人数啊.这时候用excel或者数据库统计都不方便. 我要统计的一个文件,太大了,还得分成15个文件, ...
- 纯css3样式属性制作各种图形图标
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 使用python制作ArcGIS插件(5)其他技巧
使用python制作ArcGIS插件(5)其他技巧 by 李远祥 使用python做插件开发,除了了解ArcToolBox工具之外,还需要在了解ArcPy的相关函数和接口.只有掌握了这些,才可以顺利的 ...
- 使用python制作ArcGIS插件(4)界面交互
使用python制作ArcGIS插件(4)界面交互 by 李远祥 插件界面部分,除了一开始在设计器中设计的这些界面元素之外,还可以与操作系统进行一些输入输出的交互,这部分的实现全部在pythonadd ...
随机推荐
- codevs 3143 二叉树的序遍历
传送门 Description 求一棵二叉树的前序遍历,中序遍历和后序遍历 Input 第一行一个整数n,表示这棵树的节点个数. 接下来n行每行2个整数L和R.第i行的两个整数Li和Ri代表编号为i的 ...
- Code笔记之:CSS块级元素、内联元素概念
文档流 将窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素,即为文档流. 每个非浮动块级元素都独占一行, 浮动元素则按规定浮在行的一端. 若当前行容不下, 则另起新行再浮动. 内联元素也不 ...
- primefaces 上传文件尺寸受限制 Connection terminated as request was larger than
standalone.xml like this: <http-listener name="default" socket-binding="http" ...
- zabbix监控系列(3)之zabbix触发器格式配置
前言 今天公司线上环境新添一个监控项,监控 一些日志的是否出现错误,有错误就及时报警,那么问题来了 ,报警必须告诉我们哪个日志有错误,这样才能够快速定位到哪个日志有问题. 配置 zabbix-agen ...
- JS-节点属性(常用!)
(开始很生疏,不想看的知识点,后来DOM中用的特别多,才发现很重要.还有几个点,是比较容易忽略的,值得注意!) <!DOCTYPE html><html> <head&g ...
- phpcms从表v9_news_data中字段content中用正则取出图片的地址输出
preg_match ("<img.*src=[\"](.*?)[\"].*?>",$test,$match); echo "$match ...
- MySQL学习笔记——多表连接和子查询
多表连接查询 # 返回的是两张表的乘积 SELECT * FROM tb_emp,tb_dept SELECT COUNT(*) FROM tb_emp,tb_dept # 标准写法,每个数据库都能这 ...
- 第7章 jQuery插件的使用和写法
第7章 jQuery插件的使用和写法 插件又称扩展,是一种遵循一定规范的应用程序接口写出来的程序. 插件的编写思想基于面向对象. 获取最新的插件可以查看jquery官网:http://plugins. ...
- php----显示中文乱码的问题
条件: 在显示页面设置页面编码格式为<?php header('Content-Type: text/html; charset=utf-8');?>: 在写入数据库时设置:mysql_q ...
- iOS监听键盘事件
#pragma mark - view life cycle - (void)viewDidLoad { [super viewDidLoad]; [[NSNotificationCenter def ...