Python数据可视化编程通过Matplotlib创建散点图代码示例

作者:kekezhai 时间:2022-01-04 17:23:34 

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函数参数使得散点图的分类区域更加清晰。

希望对大家有所帮助。如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

来源:http://blog.sina.com.cn/s/blog_8d249b140102wf3m.html

标签:python,matplotlib,散点图
0
投稿

猜你喜欢

  • 详解express + mock让前后台并行开发

    2024-05-03 15:54:35
  • pytorch .detach() .detach_() 和 .data用于切断反向传播的实现

    2022-01-30 21:24:56
  • python 多维高斯分布数据生成方式

    2022-12-20 20:29:40
  • python3中pip3安装出错,找不到SSL的解决方式

    2022-02-15 23:33:17
  • ASP中的面向对象类

    2011-04-11 10:34:00
  • MySQL:使用源码分发版还是二进制分发版

    2009-09-01 10:35:00
  • 详解python字符串驻留技术

    2023-09-25 21:49:25
  • 两个2008北京奥运会倒计时js代码

    2008-06-11 13:26:00
  • python常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)

    2022-09-09 12:52:45
  • 使用SQL语句 INNER JOIN 联接表

    2008-04-27 20:31:00
  • Python找出文件中使用率最高的汉字实例详解

    2021-11-06 06:37:53
  • JavaScript ES6的新特性使用新方法定义Class

    2024-04-10 11:00:30
  • python 实现rolling和apply函数的向下取值操作

    2022-03-15 07:10:08
  • python散点图实例之随机漫步

    2021-01-19 21:05:58
  • pandas去除重复列的实现方法

    2022-06-27 12:37:31
  • PyTorch中的神经网络 Mnist 分类任务

    2023-04-07 00:34:49
  • 如何在python字符串中输入纯粹的{}

    2023-09-21 22:56:41
  • MSSQL监控数据库的DDL操作(创建,修改,删除存储过程,创建,修改,删除表等)

    2024-01-19 07:54:03
  • Python实战使用Selenium爬取网页数据

    2021-06-18 19:11:56
  • python数据XPath使用案例详解

    2023-07-28 15:24:24
  • asp之家 网络编程 m.aspxhome.com