Python制作统计图形

简介: Python一般使用Matplotlib制作统计图形,用它自己的说法是‘让简单的事情简单,让复杂的事情变得可能’。(你说国外的“码农”咋这么会说,我就整不出来这工整的句子!)用它可以制作折线图,直方图,条形图,散点图,饼图,谱图等等你能想到的和想不到的统计图形,这些图形可以导出为多种具有出版质量的.

这是我的博客“dcharm”的一篇旧文,用在这里尝试一下云栖社区的博客功能。我的微博:珞珈学渣

Python一般使用Matplotlib制作统计图形,用它自己的说法是‘让简单的事情简单,让复杂的事情变得可能’。(你说国外的“码农”咋这么会说,我就整不出来这工整的句子!)用它可以制作折线图,直方图,条形图,散点图,饼图,谱图等等你能想到的和想不到的统计图形,这些图形可以导出为多种具有出版质量的格式。此外,它和ipython结合使用,确实方便,谁用谁知道!

在Matplotlib里面经常使用到的是pylab和pyplot,它之间的区别在于pyplot是封装好的调用matplotlib底层制图库的接口,制图时用户不用关心底层的实现,而pylab则是为了使用者的方便,将numpy和pyplot的功能集中在了一个命名空间中。这么解释,可能还是不太清楚,因此在此次举个例子:

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的使用。直方图和条形图主要刻画的是一维随机变量的分布,折线图和散点图主要刻画的是两个随机变量之间的相关性。首先要展示的是条形图


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,矩形的高度代表的是改组数据的均值,矩形顶部蓝色短线代表标准差,短线自矩形的顶部分别向上和向下延伸标准差的长度。

接下来要展示的是直方图,


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()

hist.png

如果是连续性型随机变量,其中的每个矩形的高度表示该对应随机变量的概率密度函数的值,如果是离散型随机变量,其中每个矩形的高度代表对应随机变量的概率。条形图在使用时要事先计算出数据的均值和方差,而使用直方图时,pyplot会自动统计数据的分布;条形图主要刻画数据的样本均值和方差,直方图主要刻画样本的总体分布。

接下来要展示的是折线图,代码如下:



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()

得到的正弦函数的图形如下:

sine.png

上面的图可以看做是y=sin(x)在区间[0,10]上的函数图形,每一个x有且只有一个y的值相对应,如果有多个y的值,则应该使用散点图。



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()

得到散点图如下:

scatter.png



相关文章
|
1月前
|
机器学习/深度学习 算法 数据挖掘
统计学与Python:实现描述性统计和推断性统计分析
【4月更文挑战第12天】本文介绍了Python在统计学中的应用,重点讲解了如何使用Python进行描述性与推断性统计分析。Pandas和NumPy库用于描述性统计,提供数据概括和总结功能;Scipy和Statsmodels库支持推断性统计,包括假设检验和模型建立。通过数据导入、描述性统计量计算、图表绘制以及假设检验和回归分析等步骤,展示了Python实现统计分析的基本流程。持续学习和实践将有助于提升Python统计分析能力。
|
3月前
|
XML 存储 数据处理
python绘制热力图-数据处理-VOC数据类别标签分布及数量统计(附代码)
python绘制热力图-数据处理-VOC数据类别标签分布及数量统计(附代码)
64 0
|
13天前
|
数据可视化 API Python
Python绘图工具seaborn,教会你如何绘制更加精美的图形(二)
Python绘图工具seaborn,教会你如何绘制更加精美的图形(二)
|
13天前
|
数据可视化 Linux API
Python绘图工具seaborn,教会你如何绘制更加精美的图形(一)
Python绘图工具seaborn,教会你如何绘制更加精美的图形(一)
|
17天前
|
人工智能 监控 数据可视化
bashplotlib,一个有趣的 Python 数据可视化图形库
bashplotlib,一个有趣的 Python 数据可视化图形库
36 4
|
19天前
|
开发框架 程序员 开发者
Python GUI编程:从入门到精通3.2 GUI编程:学习使用Tkinter、PyQt或wxPython等库创建图形用户界面。
Python GUI编程:从入门到精通3.2 GUI编程:学习使用Tkinter、PyQt或wxPython等库创建图形用户界面。
|
25天前
|
机器学习/深度学习 供应链 算法
Python配对交易策略统计套利量化交易分析股票市场
Python配对交易策略统计套利量化交易分析股票市场
|
1月前
|
机器学习/深度学习 数据可视化 数据挖掘
用Python进行健康数据分析:挖掘医疗统计中的信息
【4月更文挑战第12天】Python在医疗健康数据分析中扮演重要角色,具备数据处理、机器学习、可视化及丰富生态的优势。基本流程包括数据获取、预处理、探索、模型选择与训练、评估优化及结果可视化。应用案例包括疾病预测、药物效果分析和医疗资源优化,例如使用RandomForestClassifier进行疾病预测,Logit模型分析药物效果,以及linprog优化医疗资源配置。
|
1月前
|
测试技术 Python
288统计出现最多次的字母(PYTHON)
288统计出现最多次的字母(PYTHON)
|
2月前
|
Python
Python函数之计算规则图形的面积
Python函数之计算规则图形的面积
15 0