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删除nginx缓存文件示例(python文件操作)
Mar 26 Python
Python脚本在Appium库上对移动应用实现自动化测试
Apr 17 Python
Python实现数据可视化看如何监控你的爬虫状态【推荐】
Aug 10 Python
解决pycharm无法识别本地site-packages的问题
Oct 13 Python
python:接口间数据传递与调用方法
Dec 17 Python
新年快乐! python实现绚烂的烟花绽放效果
Jan 30 Python
python队列Queue的详解
May 10 Python
Python八皇后问题解答过程详解
Jul 29 Python
softmax及python实现过程解析
Sep 30 Python
Python Lambda函数使用总结详解
Dec 11 Python
基于SpringBoot构造器注入循环依赖及解决方式
Apr 26 Python
分享提高 Python 代码的可读性的技巧
Mar 03 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.MVC的模板标签系统(四)
2006/09/05 PHP
?繁体转换的class
2006/10/09 PHP
数据库中排序的对比及使用条件详解
2012/02/23 PHP
用php来限制每个ip每天浏览页面数量的实现思路
2015/02/24 PHP
PHP变量赋值、代入给JavaScript中的变量
2015/06/29 PHP
php函数传值的引用传递注意事项分析
2016/06/25 PHP
全面解析PHP验证码的实现原理 附php验证码小案例
2016/08/17 PHP
php使用preg_match()函数验证ip地址的方法
2017/01/07 PHP
PHP检测数据类型的几种方法(总结)
2017/03/04 PHP
php面向对象的用户登录身份验证
2017/06/08 PHP
Jquery ajaxsubmit上传图片实现代码
2010/11/04 Javascript
深入理解javascript严格模式(Strict Mode)
2014/11/28 Javascript
快速掌握Node.js之Window下配置NodeJs环境
2016/03/21 NodeJs
JavaScript 弹出子窗体并返回结果到父窗体的实现代码
2016/05/28 Javascript
js+canvas实现验证码功能
2020/09/21 Javascript
Vue弹出菜单功能的实现代码
2018/09/12 Javascript
基于vue-cli搭建多模块且各模块独立打包的项目
2019/06/12 Javascript
vue分页插件的使用方法
2019/12/25 Javascript
python对离散变量的one-hot编码方法
2018/07/11 Python
使用memory_profiler监测python代码运行时内存消耗方法
2018/12/03 Python
python基于C/S模式实现聊天室功能
2019/01/09 Python
pymongo中group by的操作方法教程
2019/03/22 Python
Python列表list操作相关知识小结
2020/01/29 Python
Alpine安装Python3依赖出现的问题及解决方法
2020/12/25 Python
PyChon中关于Jekins的详细安装(推荐)
2020/12/28 Python
CSS3动画:5种预载动画效果实例
2017/04/05 HTML / CSS
利用三角函数在canvas上画虚线的方法
2018/01/11 HTML / CSS
html5 datalist 选中option选项后的触发事件
2020/03/05 HTML / CSS
个人求职简历中英文自我评价
2013/12/16 职场文书
自我鉴定怎么写
2014/01/12 职场文书
个人能力自我鉴赏
2014/01/25 职场文书
2014年协会工作总结
2014/11/22 职场文书
食品仓管员岗位职责
2015/04/01 职场文书
观后感开头
2015/06/19 职场文书
2019年朋友圈经典励志语录50条
2019/07/05 职场文书
go使用Gin框架利用阿里云实现短信验证码功能
2021/08/04 Golang