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完全新手教程
Feb 08 Python
为python设置socket代理的方法
Jan 14 Python
Python的Flask开发框架简单上手笔记
Nov 16 Python
21行Python代码实现拼写检查器
Jan 25 Python
详解python读取和输出到txt
Mar 29 Python
Python流行ORM框架sqlalchemy安装与使用教程
Jun 04 Python
python画图——实现在图上标注上具体数值的方法
Jul 08 Python
Django添加bootstrap框架时无法加载静态文件的解决方式
Mar 27 Python
给ubuntu18安装python3.7的详细教程
Jun 08 Python
python 中的9个实用技巧,助你提高开发效率
Aug 30 Python
python 高阶函数简单介绍
Feb 19 Python
详解Python小数据池和代码块缓存机制
Apr 07 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初学者头疼问题总结
2006/07/08 PHP
PHP新手上路(八)
2006/10/09 PHP
基于php socket(fsockopen)的应用实例分析
2013/06/02 PHP
php 5.4 全新的代码复用Trait详解
2017/01/05 PHP
Extjs Ext.MessageBox.confirm 确认对话框详解
2010/04/02 Javascript
jquery里的正则表达式说明
2011/08/03 Javascript
jquery点击页面任何区域实现鼠标焦点十字效果
2013/06/21 Javascript
javascript文件加载管理简单实现方法
2015/07/25 Javascript
javascript的列表切换【实现代码】
2016/05/03 Javascript
Node.js与Sails redis组件的使用教程
2017/02/14 Javascript
AngularJS+bootstrap实现动态选择商品功能示例
2017/05/17 Javascript
使用vue-router与v-if实现tab切换遇到的问题及解决方法
2018/09/07 Javascript
微信小程序云开发之使用云数据库
2019/05/17 Javascript
浅谈layer弹出层按钮颜色修改方法
2019/09/11 Javascript
Python算法输出1-9数组形成的结果为100的所有运算式
2017/11/03 Python
python爬取m3u8连接的视频
2018/02/28 Python
Python面向对象类的继承实例详解
2018/06/27 Python
python根据list重命名文件夹里的所有文件实例
2018/10/25 Python
python全栈知识点总结
2019/07/01 Python
Django的Modelforms用法简介
2019/07/27 Python
matplotlib绘制多个子图(subplot)的方法
2019/12/03 Python
基于Python fminunc 的替代方法
2020/02/29 Python
Python接口测试文件上传实例解析
2020/05/22 Python
keras的三种模型实现与区别说明
2020/07/03 Python
python爬虫数据保存到mongoDB的实例方法
2020/07/28 Python
印度最大的旅游网站:MakeMyTrip
2016/10/05 全球购物
日本整理专家Marie Kondo的官方在线商店:KonMari
2020/06/29 全球购物
如何查看在weblogic中已经发布的EJB
2012/06/01 面试题
餐厅楼面主管岗位职责范本
2014/02/16 职场文书
转让协议书范本
2014/04/15 职场文书
司法建议书范文
2014/05/13 职场文书
数控机床专业自荐信
2014/05/19 职场文书
电大奖学金获奖感言
2014/08/14 职场文书
敲诈同学钱财检讨书范文
2014/11/18 职场文书
研究生就业推荐表导师评语
2014/12/31 职场文书
Requests什么的通通爬不了的Python超强反爬虫方案!
2021/05/20 Python