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中用has_key()方法查找键是否存在的教程
May 21 Python
python的keyword模块用法实例分析
Jun 30 Python
Python简单的制作图片验证码实例
May 31 Python
11个Python3字典内置方法大全与示例汇总
May 13 Python
机器学习实战之knn算法pandas
Jun 22 Python
python3.6 如何将list存入txt后再读出list的方法
Jul 02 Python
django 中的聚合函数,分组函数,F 查询,Q查询
Jul 25 Python
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式
May 16 Python
Python中的流程控制详解
Feb 18 Python
python 将Excel转Word的示例
Mar 02 Python
对Pytorch 中的contiguous理解说明
Mar 03 Python
利用Pycharm连接服务器的全过程记录
Jul 01 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 根据url自动生成缩略图并处理高并发问题
2014/01/23 PHP
PHP json_decode函数详细解析
2014/02/17 PHP
php数组合并array_merge()函数使用注意事项
2014/06/19 PHP
php微信开发之自定义菜单完整流程
2016/10/08 PHP
用javascript控制iframe滚动的代码
2007/04/10 Javascript
javascript下4个跨浏览器必备的函数
2010/03/07 Javascript
Js 刷新框架页的代码
2010/04/13 Javascript
setinterval()与clearInterval()JS函数的调用方法
2015/01/21 Javascript
由ReactJS的Hello world说开来
2015/07/02 Javascript
javascript实现信息增删改查的方法
2015/07/25 Javascript
jQuery实现hover合成事件的方法
2015/08/06 Javascript
基于HTML模板和JSON数据的JavaScript交互(移动端)
2016/04/06 Javascript
Javascript中this绑定的3种方法与比较
2016/10/13 Javascript
jstl中判断list中是否包含某个值的简单方法
2016/10/14 Javascript
JavaScript队列函数和异步执行详解
2017/06/19 Javascript
js+html5实现页面可刷新的倒计时效果
2017/07/15 Javascript
Vue项目自动转换 px 为 rem的实现方法
2018/10/29 Javascript
bootstrap下拉分页样式 带跳转页码
2018/12/29 Javascript
js实现无限层级树形数据结构(创新算法)
2020/02/27 Javascript
JS如何寻找数组中心索引过程解析
2020/06/01 Javascript
JavaScript缺少insertAfter解决方案
2020/07/03 Javascript
原生js实现滑块区间组件
2021/01/20 Javascript
取numpy数组的某几行某几列方法
2018/04/03 Python
Python 获取 datax 执行结果保存到数据库的方法
2019/07/11 Python
Pytorch 实现权重初始化
2019/12/31 Python
Python OpenCV实现测量图片物体宽度
2020/05/27 Python
浅谈python 类方法/静态方法
2020/09/18 Python
台湾森森购物网:U-mall
2017/10/16 全球购物
马来西亚在线药房:RoyalePharma
2019/12/01 全球购物
投标承诺书怎么写
2014/05/24 职场文书
会计电算化专业求职信
2014/06/10 职场文书
民事诉讼代理委托书
2014/10/08 职场文书
教师个人培训总结
2015/02/11 职场文书
2015年小学数学教师工作总结
2015/05/20 职场文书
三严三实·严以律己心得体会
2016/01/13 职场文书
【海涛七七解说】DCG第二周:DK VS 天禄
2022/04/01 DOTA