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实现破解猜数游戏算法示例
Sep 25 Python
Python设计模式之工厂模式简单示例
Jan 09 Python
Python实现PS滤镜特效之扇形变换效果示例
Jan 26 Python
python将文本中的空格替换为换行的方法
Mar 19 Python
python实现读取大文件并逐行写入另外一个文件
Apr 19 Python
Python中的单行、多行、中文注释方法
Jul 19 Python
Linux下python3.6.1环境配置教程
Sep 26 Python
python修改FTP服务器上的文件名
Sep 11 Python
Django 批量插入数据的实现方法
Jan 12 Python
如何利用python发送邮件
Sep 26 Python
用python进行视频剪辑
Nov 02 Python
使用python向MongoDB插入时间字段的操作
May 18 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
很实用的一个完整email发送程序
2006/10/09 PHP
PHP语法速查表
2007/01/02 PHP
PHP如何抛出异常处理错误
2011/03/02 PHP
ThinkPHP实现动态包含文件的方法
2014/11/29 PHP
详谈配置phpstorm完美支持Codeigniter(CI)代码自动完成(代码提示)
2017/04/07 PHP
Mac系统下安装PHP Xdebug
2018/03/30 PHP
基于PHP实现用户在线状态检测
2020/11/10 PHP
js实现GridView单选效果自动设置交替行、选中行、鼠标移动行背景色
2010/05/27 Javascript
javascript 图片裁剪技巧解读
2012/11/15 Javascript
js根据日期判断星座的示例代码
2014/01/23 Javascript
iframe实用操作锦集
2014/04/22 Javascript
轻松创建nodejs服务器(7):阻塞操作的实现
2014/12/18 NodeJs
js实现目录链接,内容跟着目录滚动显示的简单实例
2016/10/15 Javascript
js实现图片切换(动画版)
2016/12/25 Javascript
bootstrap table之通用方法( 时间控件,导出,动态下拉框, 表单验证 ,选中与获取信息)代码分享
2017/01/24 Javascript
nodejs爬虫遇到的乱码问题汇总
2017/04/07 NodeJs
使用jQuery和ajax代替iframe的方法(详解)
2017/04/12 jQuery
vue下拉菜单组件(含搜索)的实现代码
2018/11/25 Javascript
实例讲解vue源码架构
2019/01/24 Javascript
原生js 实现表单验证功能
2021/02/08 Javascript
[14:56]教你分分钟做大人:巫医
2014/10/30 DOTA
手把手教你用python抢票回家过年(代码简单)
2018/01/21 Python
Python实现批量压缩图片
2018/01/25 Python
8段用于数据清洗Python代码(小结)
2019/10/31 Python
tensorflow没有output结点,存储成pb文件的例子
2020/01/04 Python
利用python下载scihub成文献为PDF操作
2020/07/09 Python
纽约复古灵感的现代珠宝品牌:Lulu Frost
2018/03/03 全球购物
字符串str除首尾字符外的其他字符按升序排列
2013/03/08 面试题
生日寄语大全
2014/04/08 职场文书
文体活动总结范文
2014/05/05 职场文书
党员目标管理责任书
2014/07/25 职场文书
兵马俑的导游词
2015/02/02 职场文书
大学生创业计划书
2019/06/24 职场文书
golang 实现菜单树的生成方式
2021/04/28 Golang
教你如何使用Python实现二叉树结构及三种遍历
2021/06/18 Python
JS前端使用Canvas快速实现手势解锁特效
2022/09/23 Javascript