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文件右键找不到IDLE打开项解决办法
Jun 08 Python
Django ORM框架的定时任务如何使用详解
Oct 19 Python
Tensorflow 训练自己的数据集将数据直接导入到内存
Jun 19 Python
idea创建springMVC框架和配置小文件的教程图解
Sep 18 Python
利用Python模拟登录pastebin.com的实现方法
Jul 12 Python
python实现多线程端口扫描
Aug 31 Python
浅谈Django QuerySet对象(模型.objects)的常用方法
Mar 28 Python
python属于跨平台语言码
Jun 09 Python
python和php哪个容易学
Jun 19 Python
Python Selenium库的基本使用教程
Jan 04 Python
python FTP编程基础入门
Feb 27 Python
解决pycharm安装scrapy DLL load failed:找不到指定的程序的问题
Jun 08 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与MySQL开发中页面出现乱码的一种解决方法
2007/07/29 PHP
PHP中实现中文字符进制转换原理分析
2011/12/06 PHP
php异常处理技术,顶级异常处理器
2012/06/13 PHP
php弹出对话框实现重定向代码
2014/01/23 PHP
php实现信用卡校验位算法THE LUHN MOD-10示例
2014/05/07 PHP
php开启openssl的方法
2014/05/15 PHP
Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源
2014/06/22 PHP
PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法
2014/06/23 PHP
php自定义hash函数实例
2015/05/05 PHP
PHP htmlspecialchars()函数用法与实例讲解
2019/03/08 PHP
PHP序列化和反序列化深度剖析实例讲解
2020/12/29 PHP
JavaScript实现维吉尼亚(Vigenere)密码算法实例
2013/11/22 Javascript
JavaScript—window对象使用示例
2013/12/09 Javascript
JS使用cookie设置样式的方法
2016/06/30 Javascript
使用 vue 实现灭霸打响指英雄消失的效果附demo
2019/05/06 Javascript
关于vue表单提交防双/多击的例子
2019/10/31 Javascript
简洁的十分钟Python入门教程
2015/04/03 Python
Python实现提取文章摘要的方法
2015/04/21 Python
Python设计模式编程中Adapter适配器模式的使用实例
2016/03/02 Python
Python判断两个list是否是父子集关系的实例
2018/05/04 Python
Python编程实现tail-n查看日志文件的方法
2019/07/08 Python
Python使用微信itchat接口实现查看自己微信的信息功能详解
2019/08/22 Python
Django实现简单网页弹出警告代码
2019/11/15 Python
python 实现list或string按指定分段
2019/12/25 Python
PyQt5实现简单的计算器
2020/05/30 Python
Keras: model实现固定部分layer,训练部分layer操作
2020/06/28 Python
使用Python Tkinter实现剪刀石头布小游戏功能
2020/10/23 Python
Python 实现集合Set的示例
2020/12/21 Python
canvas裁剪clip()函数的具体使用
2018/03/01 HTML / CSS
本科毕业生求职自荐信
2014/02/03 职场文书
南京市纪委监察局整改方案
2014/09/16 职场文书
党的群众路线教育实践活动党员个人整改措施
2014/10/27 职场文书
中学生勤俭节约倡议书
2015/04/29 职场文书
中国汉字听写大会观后感
2015/06/02 职场文书
教师节校长致辞
2015/07/31 职场文书
Android 中的类文件和类加载器详情
2022/06/05 Java/Android