Python数据可视化编程通过Matplotlib创建散点图代码示例


Posted in Python onDecember 09, 2017

Matplotlib简述:

Matplotlib是一个用于创建出高质量图表的桌面绘图包(主要是2D方面)。该项目是由JohnHunter于2002年启动的,其目的是为Python构建一个MATLAB式的绘图接口。如果结合PythonIDE使用比如PyCharm,matplotlib还具有诸如缩放和平移等交互功能。它不仅支持各种操作系统上许多不同的GUI后端,而且还能将图片导出为各种常见的矢量(vector)和光栅(raster)图:PDF、SVG、JPG、PNG、BMP、GIF等。此外,matplotlib还有许多插件工具集,如用于3D图形的mplot3d以及用于地图和投影的basemap。

准备数据:从文本文件中解析数据

本文使用的数据主要包含以下三种特征:每年获得的飞行常客里程数,玩视频游戏所耗时间百分比,每周消费的冰淇淋公升数。其中分类结果作为文件的第四列,并且只有3、2、1三种分类值。

飞行里程数  游戏耗时百分比  冰淇淋公升数  分类结果
 40920  8.326976  0.953952  3
 14488  7.153469  1.673904  2 
 26052  1.441871  0.805124  1
......  ......  ......  ......

上述特征数据的格式经过file2matrix函数解析处理之后,可输出为矩阵和类标签向量。

将文本记录转换为Numpy的解析程序:

Python数据可视化编程通过Matplotlib创建散点图代码示例

使用file2matrix读取文件数据,必须确保待解析文件存储在当前的工作目录中。导入数据之后,简单检查一下数据格式:

Python数据可视化编程通过Matplotlib创建散点图代码示例

分析数据:使用Matplotlib创建散点图

编辑kNN.py文件,引入matplotlib,调用matplotlib的scatter绘制散点图。

import matplotlib
import matplotlib.pyplot as plt
def file2matrix(filename):
......
return returnMat,classLabelVector
datingDataMat,datingLabels = file2matrix('datingTestSet2.txt')
fig = plt.figure()
ax = fig.add_subpot(111)
ax.scatter(datingDataMat[:,1],datingDataMat[:,2])
plt.show()

散点图使用datingDataMat矩阵的第二、第三列数据,分别表示特征值“玩视频游戏所耗时间百分比”和“每周消费的冰淇淋公升数”。

Python数据可视化编程通过Matplotlib创建散点图代码示例

上图由于没有使用样本分类的特征值,很难看到任何有用的数据模式信息。为了更好理解数据信息,Matplotlib库提供的scatter函数支持个性化标记散点图上的点。调用scatter函数使用下列参数:

ax.scatter(datingDataMat[:,1],datingDataMat[:,2],15.0*array(datingLabels),15.0*array(datingLabels))
plt.show()

Python数据可视化编程通过Matplotlib创建散点图代码示例

上图利用datingLabels存储的类标签属性,在散点图上绘制了色彩不等、尺寸不同的点。因而基本上可以从图中看到数据点所属三个样本分类的区域轮廓。为了得到更好的效果,采用datingDataMat矩阵的属性列1和2展示数据,并以红色的'*'表示类标签1、蓝色的'o'表示表示类标签2、绿色的'+'表示类标签3,修改参数如下:

import numpy as np
......
datingLabels = array(datingLabels)
idx_1 = np.where(datingLabels==1)
p1 = ax.scatter(datingDataMat[idx_1,0],datingDataMat[idx_1:,1],market = '*',color = 'r',label='1',s=20
idx_2 = np.where(datingLabels==2)
p2 = ax.scatter(datingDataMat[idx_2,0],datingDataMat[idx_2:,1],market = 'o',color ='b',label='1',s=10
idx_3 = np.where(datingLabels==3)
p3 = ax.scatter(datingDataMat[idx_3,0],datingDataMat[idx_3:,1],market = '+',color ='g',label='1',s=30
plt.legend(loc = 'upper right')
plt.show()

Python数据可视化编程通过Matplotlib创建散点图代码示例

总结

本文简单介绍了Matplotlib,并以实例分析了如何使用Matplotlib库图形化展示数据,最后通过修改matplotlib的scatter函数参数使得散点图的分类区域更加清晰。

希望对大家有所帮助。如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
python继承和抽象类的实现方法
Jan 14 Python
Python随机生成数模块random使用实例
Apr 13 Python
Python中自定义函数的教程
Apr 27 Python
举例讲解Python中的死锁、可重入锁和互斥锁
Nov 05 Python
使用Python将数组的元素导出到变量中(unpacking)
Oct 27 Python
python编程实现希尔排序
Apr 13 Python
使用Numpy读取CSV文件,并进行行列删除的操作方法
Jul 04 Python
python3 http提交json参数并获取返回值的方法
Dec 19 Python
Python Pexpect库的简单使用方法
Jan 29 Python
Python模块future用法原理详解
Jan 20 Python
Python实现自动装机功能案例分析
Oct 22 Python
python数据可视化使用pyfinance分析证券收益示例详解
Nov 20 Python
python学习之matplotlib绘制散点图实例
Dec 09 #Python
Python学习pygal绘制线图代码分享
Dec 09 #Python
Python编程pygal绘图实例之XY线
Dec 09 #Python
同时安装Python2 & Python3 cmd下版本自由选择的方法
Dec 09 #Python
基于Python中capitalize()与title()的区别详解
Dec 09 #Python
Python IDLE入门简介
Dec 08 #Python
利用Python找出序列中出现最多的元素示例代码
Dec 08 #Python
You might like
PHP自动生成月历代码
2006/10/09 PHP
PHP Hash算法:Times33算法代码实例
2015/05/13 PHP
PHP.vs.JAVA
2016/04/29 PHP
微信支付开发发货通知实例
2016/07/12 PHP
phpcms配置列表页以及获得文章发布时间
2017/07/04 PHP
学习ExtJS Panel常用方法
2009/10/07 Javascript
JavaScript 函数参数是传值(byVal)还是传址(byRef) 分享
2013/07/02 Javascript
js 实现 input type="file" 文件上传示例代码
2013/08/07 Javascript
为什么JS中eval处理JSON数据要加括号
2015/04/13 Javascript
javascript中this的四种用法
2015/05/11 Javascript
jquery+ajax实现直接提交表单实例分析
2016/06/17 Javascript
JavaScript ES5标准中新增的Array方法
2016/06/28 Javascript
jQuery实现表格元素动态创建功能
2017/01/09 Javascript
JS获得一个对象的所有属性和方法实例
2017/02/21 Javascript
前端开发之CSS原理详解
2017/03/11 Javascript
小程序图片剪裁加旋转的示例代码
2018/07/10 Javascript
jQuery实现的淡入淡出图片轮播效果示例
2018/08/29 jQuery
vue实现评论列表功能
2019/10/25 Javascript
开发Node CLI构建微信小程序脚手架的示例
2020/03/27 Javascript
vue单文件组件无法获取$refs的问题
2020/06/24 Javascript
python3实现斐波那契数列(4种方法)
2019/07/15 Python
django 实现将本地图片存入数据库,并能显示在web上的示例
2019/08/07 Python
Python实现大数据收集至excel的思路详解
2020/01/03 Python
Python selenium键盘鼠标事件实现过程详解
2020/07/28 Python
CSS3 :default伪类选择器使用简介
2018/03/15 HTML / CSS
HTML4和HTML5之间除了相似以外的10个主要不同
2012/12/13 HTML / CSS
amaze ui 的使用详细教程
2020/08/19 HTML / CSS
金牌葡萄酒俱乐部:Gold Medal Wine Club
2017/11/02 全球购物
澳大利亚领先的在线礼品网站:Gifts Australia
2020/08/15 全球购物
联谊活动策划书
2014/01/26 职场文书
企业诚信承诺书
2014/05/23 职场文书
五四演讲稿范文
2014/09/03 职场文书
医德医风自我评价2015
2015/03/03 职场文书
入党培养人考察意见
2015/06/08 职场文书
青少年法制教育心得体会
2016/01/14 职场文书
Vue3.0中Ref与Reactive的区别示例详析
2021/07/07 Vue.js