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实现统计英文单词个数及字符串分割代码
May 28 Python
Python实现新浪博客备份的方法
Apr 27 Python
python的变量与赋值详细分析
Nov 08 Python
python os用法总结
Jun 08 Python
win7 x64系统中安装Scrapy的方法
Nov 18 Python
python自动化之Ansible的安装教程
Jun 13 Python
使用Windows批处理和WMI设置Python的环境变量方法
Aug 14 Python
Python range、enumerate和zip函数用法详解
Sep 11 Python
Python3.x+迅雷x 自动下载高分电影的实现方法
Jan 12 Python
win10下opencv-python特定版本手动安装与pip自动安装教程
Mar 05 Python
Python基于Socket实现简易多人聊天室的示例代码
Nov 29 Python
python 对象真假值的实例(哪些视为False)
Dec 11 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脚本的10个技巧(8)
2006/10/09 PHP
PHP之短标签开启设置
2013/06/17 PHP
谈谈PHP中substr和substring的正确用法及相关参数的介绍
2015/12/16 PHP
PHP各种常见经典算法总结【排序、查找、翻转等】
2019/08/05 PHP
Laravel创建数据库表结构的例子
2019/10/09 PHP
YII2框架中actions的作用与使用方法示例
2020/03/13 PHP
js编写trim()函数及正则表达式的运用
2013/10/24 Javascript
js离开或刷新页面检测(且兼容FF,IE,Chrome)
2014/03/05 Javascript
js点击事件链接的问题解决
2014/04/25 Javascript
js给selected添加options的方法
2015/05/06 Javascript
JavaScript中计算网页中某个元素的位置
2015/06/10 Javascript
基于vue,vue-router, vuex及addRoutes进行权限控制问题
2018/05/02 Javascript
最后说说Vue2 SSR 的 Cookies 问题
2018/05/25 Javascript
uni-app使用微信小程序云函数的步骤示例
2020/05/22 Javascript
[01:06:32]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第一局
2016/02/28 DOTA
Python中实现远程调用(RPC、RMI)简单例子
2014/04/28 Python
python装饰器深入学习
2018/04/06 Python
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
2018/07/27 Python
解决win7操作系统Python3.7.1安装后启动提示缺少.dll文件问题
2019/07/15 Python
DataFrame.to_excel多次写入不同Sheet的实例
2019/12/02 Python
Python绘制组合图的示例
2020/09/18 Python
python3 使用ssh隧道连接mysql的操作
2020/12/05 Python
大学生自我评价怎样写好
2013/10/23 职场文书
车间副主任岗位职责
2013/12/24 职场文书
年度考核评语
2014/01/19 职场文书
带病坚持工作事迹
2014/05/03 职场文书
园林专业毕业生自荐信
2014/07/04 职场文书
2014年社区国庆节活动方案
2014/09/16 职场文书
优秀班主任材料
2014/12/16 职场文书
五年级上册复习计划
2015/01/19 职场文书
酒店前台辞职书
2015/02/26 职场文书
ORACLE数据库对long类型字段进行模糊匹配的解决思路
2021/04/07 Oracle
如何使用Python实现一个简易的ORM模型
2021/05/12 Python
linux下导入、导出mysql数据库命令的实现方法
2021/05/26 MySQL
sql server删除前1000行数据的方法实例
2021/08/30 SQL Server
MongoDB修改oplog大小的四种方法
2022/04/11 MongoDB