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下自己编写web框架的一些要点
Apr 29 Python
Windows系统下使用flup搭建Nginx和Python环境的方法
Dec 25 Python
python进程管理工具supervisor的安装与使用教程
Sep 05 Python
使用Python AIML搭建聊天机器人的方法示例
Jul 09 Python
python 读取视频,处理后,实时计算帧数fps的方法
Jul 10 Python
CentOS7下python3.7.0安装教程
Jul 30 Python
Django实现一对多表模型的跨表查询方法
Dec 18 Python
python实现微信自动回复机器人功能
Jul 11 Python
Python日期格式和字符串格式相互转换的方法
Feb 18 Python
Python 实现一行输入多个数字(用空格隔开)
Apr 29 Python
keras 解决加载lstm+crf模型出错的问题
Jun 10 Python
python pandas dataframe 去重函数的具体使用
Jul 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中用数组的方法设置cookies
2011/04/21 PHP
PHP图片等比缩放类SimpleImage使用方法和使用实例分享
2014/04/10 PHP
php 指定范围内多个随机数代码实例
2016/07/18 PHP
微信支付之JSAPI公众号支付详解
2019/05/15 PHP
JavaScript基本概念初级讲解论坛贴的学习记录
2009/02/22 Javascript
JQERY limittext 插件0.2版(长内容限制显示)
2010/08/27 Javascript
如何实现修改密码时密码框显示保存到cookie的密码
2013/12/10 Javascript
javascript中取前n天日期的两种方法分享
2014/01/26 Javascript
javascript瀑布流式图片懒加载实例
2020/06/28 Javascript
Vuejs第九篇之组件作用域及props数据传递实例详解
2016/09/05 Javascript
基于iscroll.js实现下拉刷新和上拉加载效果
2016/11/28 Javascript
详解jQuery uploadify文件上传插件的使用方法
2016/12/16 Javascript
js数组去重的hash方法
2016/12/22 Javascript
js 性能优化之快速响应的用户界面
2017/02/15 Javascript
bootstrap datepicker插件默认英文修改为中文
2017/07/28 Javascript
利用vue组件自定义v-model实现一个Tab组件方法示例
2017/12/06 Javascript
javascript实现移动端上传图片功能
2020/08/18 Javascript
[03:39]DOTA2英雄梦之声_第05期_幽鬼
2014/06/23 DOTA
Python基于PycURL自动处理cookie的方法
2015/07/25 Python
Python在Windows和在Linux下调用动态链接库的教程
2015/08/18 Python
Python中的with语句与上下文管理器学习总结
2016/06/28 Python
python绘制热力图heatmap
2020/03/23 Python
Numpy中对向量、矩阵的使用详解
2019/10/29 Python
python代码如何注释
2020/06/01 Python
matplotlib运行时配置(Runtime Configuration,rc)参数rcParams解析
2021/01/05 Python
梅西百货官网:Macy’s
2020/08/04 全球购物
Ibatis的核心配置文件都有什么
2014/09/08 面试题
过滤器的用法
2013/10/08 面试题
幼儿教师个人求职信范文
2013/09/21 职场文书
法学毕业生自我鉴定
2014/01/31 职场文书
大学生党员批评与自我批评
2014/09/28 职场文书
2014年营业员工作总结
2014/11/18 职场文书
企业财务经理岗位职责
2015/04/08 职场文书
获奖感言范文
2015/07/31 职场文书
2016教师给学生的毕业寄语
2015/12/04 职场文书
《吸血鬼:避世 血猎》官宣4.27发售 系列首款大逃杀
2022/04/03 其他游戏