Python 绘图,我只用 Matplotlib

2019 年 9 月 18 日 人工智能头条

01

散点图
散点图显示两组数据的值,如图1-1所示。 每个点的坐标位置由变量的值决定,并由一组不连接的点完成,用于观察两种变量的相关性。 例如,身高—体重、温度—维度。

图1-1 散点图示例


使用Matplotlib的scatter()函数绘制散点图,其中x和y是相同长度的数组序列。 scatter()函数的一般用法为:


主要参数说明如下:
  • x,y:数组。 

  • s:散点图中点的大小,可选。 

  • c:散点图中点的颜色,可选。 

  • marker:散点图的形状,可选。 

  • alpha:表示透明度,在 0~1 取值,可选。 

  • linewidths:表示线条粗细,可选。


示例: 绘制身高—体重的散点图
运行脚本输出如图1-2所示的图形。

图1-2 基本的散点图


散点图主要演示两个变量的相关性: 正相关、负相关、不相关。
示例: 显示y=2x+1的图形
Matplotlib中最基础的模块是Pyplot, 下面从最简单的线图开始讲解。 例如,有一组数据,还有一个拟合模型,通过编写代码来实现数据与模型结果的可视化。  
假设一个线性函数具有形式y=ax+b, 自变量是x,因变量是y,y轴截距为b,斜率为a。  
下面用简单的数据来描述线性方程y=2x+1,代码如下:
运行脚本输出如图2-2所示的图形。

图2-2 基本直线图


在图2-2中,使用线性方程y=2x+1画出的是直线图。 如果想画出曲线图,则只需更改线性方程为 ,完整代码如下:

运行脚本输出如图2-3所示的图形。

图2-3 曲线图
02
直方图
直方图由一系列高度不等的纵向条形组成,表示数据分布的情况。例如,某年级学生的身高分布情况,如图4-1所示。

图4-1 直方图


直方图与柱状图的区别有以下几点:
1. 柱状图是用条形的长度表示各类别频数的多少,其宽度(表示类别)是固定的,主要是展示不同类别的数据。 
2. 直方图是用面积表示各组频数的多少,矩形的高度表示每一组的频数 ( 或频率 ),宽度则表示各组的组距,因此其高度与宽度均有意义。 
3. 由于分组数据具有连续性,因此直方图的各矩形通常是连续排列,而柱状图则是分开排列。 
4. 柱状图主要用于展示分类型数据,而直方图主要用于展示数据型数据。 
使用Matplotlib的hist()函数绘制直方图,hist()函数的一般用法为:


主要参数说明如下:
• bins:直方图中箱子 (bin) 的总个数。个数越多,条形带越紧密。 
• color:箱子的颜色。 

• normed:对数据进行正则化。决定直方图y轴的取值是某个箱子中的元素的个数 (normed=False), 还是某个箱子中的元素的个数占总体的百分比 (normed=True)。 

在介绍直方图之前,先来了解什么是正太分布。
正态分布也称常态分布,是连续随机变量概率分布的一种,自然界、人类社会、心理和教育中的大量现象均按正态形式分布。例如,能力的高低、学生成绩的好坏等都属于正态分布。正态分布曲线呈钟形,两头低,中间高,左右对称。因其曲线呈钟形,所以人们又经常称之为钟形曲线,如图4-2所示。

图4-2 正态分布的钟形曲线


正态分布有两个参数,即均值和标准差。均值是正态分布的位置参数,描述正态分布的集中趋势位置。概率规律为:取与均值越近的值的概率越大,而取离均值越远的值的概率越小。 

标准差描述正态分布资料数据分布的离散程度,标准差越大,数据分布越分散;标准差越小,数据分布越集中。标准差也是正态分布的形状参数,标准差越大,曲线越扁平;反之,标准差越小,曲线越瘦高。 

绘制直方图,需要使用NumPy的np.random.randn(N)函数,这个函数的作用就是从标准正态分布中返回N个样本值。 
示例:直方图
本例文件名为
“PythonFullStackChapter07mpl_hist01”
显示直方图。其完整代码如下:
运行脚本输出如图4-3所示的图形。

图4-3 直方图 

如果你对 Python 感兴趣

这场公开课值得一听

扫码填加 GitChat小姐姐-柚柚

回复 py 拉你进群听直播分享

本文摘自《Python 3.x全栈开发从入门到精通》

登录查看更多
5

相关内容

Matplotlib是Python最著名的数据可视化工具包,有了它,一些统计上常用的图形如折线图、散点图、直方图等都可以用简单的几行Python代码实现。
【实用书】Python机器学习Scikit-Learn应用指南,247页pdf
专知会员服务
255+阅读 · 2020年6月10日
Python地理数据处理,362页pdf,Geoprocessing with Python
专知会员服务
110+阅读 · 2020年5月24日
【干货书】R语言书: 编程和统计的第一课程,
专知会员服务
107+阅读 · 2020年5月9日
【干货书】数值计算C编程,319页pdf,Numerical C
专知会员服务
66+阅读 · 2020年4月7日
【经典书】Python数据数据分析第二版,541页pdf
专知会员服务
189+阅读 · 2020年3月12日
【新书】Python数据科学食谱(Python Data Science Cookbook)
专知会员服务
113+阅读 · 2020年1月1日
一文看懂怎么用 Python 做数据分析
大数据技术
23+阅读 · 2019年5月5日
Python奇淫技巧,5个数据可视化工具
机器学习算法与Python学习
7+阅读 · 2019年4月12日
实战 | 用Python做图像处理(三)
七月在线实验室
15+阅读 · 2018年5月29日
实战 | 用Python做图像处理(二)
七月在线实验室
17+阅读 · 2018年5月25日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
python pandas 数据处理
Python技术博文
3+阅读 · 2017年8月30日
Arxiv
8+阅读 · 2019年3月21日
Star-Transformer
Arxiv
5+阅读 · 2019年2月28日
A Probe into Understanding GAN and VAE models
Arxiv
9+阅读 · 2018年12月13日
Arxiv
8+阅读 · 2018年11月21日
VIP会员
相关VIP内容
【实用书】Python机器学习Scikit-Learn应用指南,247页pdf
专知会员服务
255+阅读 · 2020年6月10日
Python地理数据处理,362页pdf,Geoprocessing with Python
专知会员服务
110+阅读 · 2020年5月24日
【干货书】R语言书: 编程和统计的第一课程,
专知会员服务
107+阅读 · 2020年5月9日
【干货书】数值计算C编程,319页pdf,Numerical C
专知会员服务
66+阅读 · 2020年4月7日
【经典书】Python数据数据分析第二版,541页pdf
专知会员服务
189+阅读 · 2020年3月12日
【新书】Python数据科学食谱(Python Data Science Cookbook)
专知会员服务
113+阅读 · 2020年1月1日
相关资讯
一文看懂怎么用 Python 做数据分析
大数据技术
23+阅读 · 2019年5月5日
Python奇淫技巧,5个数据可视化工具
机器学习算法与Python学习
7+阅读 · 2019年4月12日
实战 | 用Python做图像处理(三)
七月在线实验室
15+阅读 · 2018年5月29日
实战 | 用Python做图像处理(二)
七月在线实验室
17+阅读 · 2018年5月25日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
python pandas 数据处理
Python技术博文
3+阅读 · 2017年8月30日
相关论文
Arxiv
8+阅读 · 2019年3月21日
Star-Transformer
Arxiv
5+阅读 · 2019年2月28日
A Probe into Understanding GAN and VAE models
Arxiv
9+阅读 · 2018年12月13日
Arxiv
8+阅读 · 2018年11月21日
Top
微信扫码咨询专知VIP会员