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设计模式大全
Jun 27 Python
解决PyCharm中光标变粗的问题
Aug 05 Python
django 发送邮件和缓存的实现代码
Jul 18 Python
python实现学员管理系统
Feb 26 Python
Python的高阶函数用法实例分析
Apr 11 Python
python opencv minAreaRect 生成最小外接矩形的方法
Jul 01 Python
Python函数中的可变长参数详解
Sep 12 Python
pandas DataFrame 数据选取,修改,切片的实现
Apr 24 Python
Python 多线程C段扫描、检测 Ping扫描脚本的实现
Sep 03 Python
python不同版本的_new_不同点总结
Dec 09 Python
Pandas数据分析的一些常用小技巧
Feb 07 Python
Python手拉手教你爬取贝壳房源数据的实战教程
May 21 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求两个文件的相对路径
2013/06/20 PHP
解析php安全性问题中的:Null 字符问题
2013/06/21 PHP
qq登录,新浪微博登录接口申请过程中遇到的问题
2014/07/22 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
showModalDialog 和 showModelessDialog
2007/01/22 Javascript
如何简单地用YUI做JavaScript动画
2007/03/10 Javascript
用JQuery 实现的自定义对话框
2007/03/24 Javascript
JavaScript 节点操作 以及DOMDocument属性和方法
2007/12/06 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之三
2012/01/03 Javascript
js打开windows上的可执行文件示例
2014/05/27 Javascript
js动态往表格的td中添加图片并注册事件
2014/06/12 Javascript
Javascript将JSON日期格式化
2016/08/23 Javascript
easyui combobox开启搜索自动完成功能的实例代码
2016/11/08 Javascript
基于JavaScript实现轮播图原理及示例
2020/04/10 Javascript
微信小程序 页面跳转如何实现传值
2017/04/05 Javascript
基于vue 动态加载图片src的解决方法
2018/02/05 Javascript
Vue中的异步组件函数实现代码
2018/07/20 Javascript
详解js实时获取并显示当前时间的方法
2019/05/10 Javascript
JavaScript数组类型Array相关的属性与方法详解
2020/09/08 Javascript
微信小程序将页面按钮悬浮固定在底部的实现代码
2020/10/29 Javascript
Python使用Socket(Https)Post登录百度的实现代码
2012/05/18 Python
pygame学习笔记(4):声音控制
2015/04/15 Python
python实现用户登录系统
2016/05/21 Python
Python爬虫实例_城市公交网络站点数据的爬取方法
2018/01/10 Python
Django框架创建mysql连接与使用示例
2019/07/29 Python
Python列表去重复项的N种方法(实例代码)
2020/05/12 Python
世界上最大的乐器零售商:Guitar Center
2017/11/07 全球购物
小学生个人先进事迹材料
2014/05/08 职场文书
绿色环保家庭事迹材料
2014/08/31 职场文书
2015年元旦演讲稿
2014/09/12 职场文书
工作作风整顿个人剖析材料
2014/10/11 职场文书
2014年园林绿化工作总结
2014/12/11 职场文书
党风廉政建设调研报告
2015/01/01 职场文书
体育教师个人总结
2015/02/09 职场文书
工程技术员岗位职责
2015/04/11 职场文书
docker-compose部署Yapi的方法
2022/04/08 Servers