数据挖掘 | 实验二 数据的可视化

文章目录

一、目的与要求

  1. 熟练运用数据清洗及相关预处理方法;
  2. 掌握常用可视化技术的适用场合及相关方法;
  3. 了解 matplotlib库的基本功能;
  4. 掌握 matplotlib库中常用可视化方法调用接口。

二、实验设备与环境、数据

  • PC 机、PC 机 + Python3.7 环境(pycharm、anaconda 或其它都可以)
  • 可视化库: Matplotlib库等
  • 提供鸢尾花数据集 iris150条记录(150*5)包括一个类标号属性。

三、实验内容

1) 可视化必要性及工具
数据可视化是数据科学工作的一项主要任务,在分析早期阶段,通常会进行探索性数据分析(EDA)以获取对数据的理解和洞察,尤其对于大型高维的数据集,数据可视化有助于使数据分布及关系更清晰易懂;在项目结束时,以清晰、简洁和引人注目的方式展示最终结果使人更容易理解。
本实验采用 Python 的 Matplotlib、Seaborn 等库实现一些快速而简单的可视化功能,Matplotlib 是个比较流行的 Python 库,可以方便实现数据的可视化,它与 Numpy、pandas 及其提供的数据结构紧密集成。Seaborn 是基于
matplotlib 的 Python 可视化库。提供了多种对 matplotlib 绘制的图形的美化
功能。
在可视化过程中,要了解各种可视化技术的特点及接口,根据实际数据集及任务需求来正确选择相应可视化手段,并且正确设置接口数据和参数。

具体要求

(1)数据获取

从本地读取 iris 数据集,将列名命名为: 'sepal length', 'sepal width ', 'petal length','petal width', 'species'

import pandas as pd

iris_data = pd.read_csv("iris.csv", header=None, names=['sepal length', 'sepal width',
                                                        'petal length', 'petal width', 'species'])

iris = pd.DataFrame(iris_data)
print(iris)

数据挖掘 | 实验二 数据的可视化

(2)数据的清理

a) 查看数据行列情况,判断是否有空行,如果有则删除;
b) 查看空值情况

import pandas as pd
iris_data=pd.read_csv("iris.csv",header=None,names=['sepal length','sepal width',
                    'petal length','petal width','species'])

iris=pd.DataFrame(iris_data)
print("数据集的行数为:",iris.shape[0])
print("数据集的列数为:",iris.shape[1])

print("存在空行数目:",iris.isnull().T.any().sum())

iris.dropna(axis=0,how="all",inplace=True)

print("删除空行后存在空行数目:",iris.isnull().T.any().sum ())
print("每列空值的数目:\n",iris.isnull().sum())

数据挖掘 | 实验二 数据的可视化

(3)可视化技术

(注意:以下图中请标记: title、legend以及各坐标标签。)

a) 直方图展示各个维度的值分布情况;(20个分箱)

import pandas as pd
import matplotlib.pyplot as plt
from pylab import mpl
mpl.rcParams['font.sans-serif']=['SimHei']
iris_data = pd.read_csv("iris.csv", header=None, names=['sepal length', 'sepal width',
                                                        'petal length', 'petal width', 'species'])
iris = pd.DataFrame(iris_data)
plt.suptitle("鸢尾花各维分布直方图")

plt.subplot(221)

plt.hist(iris_data['sepal length'], bins=20, edgecolor='black', alpha=0.7)

plt.xlabel("取值")

plt.ylabel("计数")

plt.title("花萼长度的分布直方图")

plt.subplot(222)
plt.hist(iris_data['sepal width'], bins=20, edgecolor='black', alpha=0.7)

plt.xlabel("取值")

plt.ylabel("计数")

plt.title("花萼宽度的分布直方图")

plt.subplot(223)
plt.hist(iris_data['petal length'], bins=20, edgecolor='black', alpha=0.7)

plt.xlabel("取值")

plt.ylabel("计数")

plt.title("花瓣长度的分布直方图")

plt.subplot(224)
plt.hist(iris_data['petal width'], bins=20, edgecolor='black', alpha=0.7)

plt.xlabel("取值")

plt.ylabel("计数")

plt.title("花瓣宽度的分布直方图")

plt.subplots_adjust(hspace=0.5)
plt.show()

数据挖掘 | 实验二 数据的可视化

b) 箱式图展示三类鸢尾花的petal_length属性值的分布情况;

import pandas as pd
import matplotlib.pyplot as plt
from pylab import mpl
import seaborn as sns
mpl.rcParams['font.sans-serif']=['SimHei']
iris_data = pd.read_csv("iris.csv", header=None, names=['sepal length', 'sepal width',
                                                        'petal length', 'petal width', 'species'])
iris = pd.DataFrame(iris_data)
plt.suptitle("三类鸢尾花的petal_length属性值的分布情况")
sns.boxplot(x="species",y="petal length",data=iris)

plt.title("箱型图")
plt.show()

数据挖掘 | 实验二 数据的可视化

c) 在一个图中展示三种鸢尾花的petal_width属性的10个百分位折线图

import pandas as pd
import matplotlib.pyplot as plt
from pylab import mpl
import numpy as np
mpl.rcParams['font.sans-serif']=['SimHei']
iris_data = pd.read_csv("iris.csv", header=None, names=['sepal length', 'sepal width',
                                                        'petal length', 'petal width', 'species'])
iris = pd.DataFrame(iris_data)

q=np.linspace(10,100,num=10)

sepal_length1=np.array(iris[iris['species']==1]['petal width'])

plt.plot(q,np.percentile(sepal_length1,q),color='blue',linewidth=2.0)

sepal_length2=np.array(iris[iris['species']==2]['petal width'])
plt.plot(q,np.percentile(sepal_length2,q),color='red',linewidth=2.0)

sepal_length3=np.array(iris[iris['species']==3]['petal width'])
plt.plot(q,np.percentile(sepal_length3,q),color='green',linewidth=2.0)
plt.title("三种鸢尾花的petal_width属性的10个百分位折线图")
plt.legend([sepal_length1,sepal_length2,sepal_length3],labels=['山鸢尾花','杂色鸢尾花','佛及利亚鸢尾花'])
plt.show()

数据挖掘 | 实验二 数据的可视化

d) 在一个图中展示花萼长与宽的散点图

import pandas as pd
import matplotlib.pyplot as plt
from pylab import mpl
mpl.rcParams['font.sans-serif']=['SimHei']
iris_data = pd.read_csv("iris.csv", header=None, names=['sepal length', 'sepal width',
                                                        'petal length', 'petal width', 'species'])
iris = pd.DataFrame(iris_data)
plt.scatter(iris[iris['species']==1]['sepal length'],iris[iris['species']==1]['sepal width'])

plt.scatter(iris[iris['species']==2]['sepal length'],iris[iris['species']==2]['sepal width'])
plt.scatter(iris[iris['species']==3]['sepal length'],iris[iris['species']==3]['sepal width'])
plt.title('花萼长与宽的散点图', fontsize=24)
plt.xlabel('sepal length', fontsize=14)
plt.ylabel('sepal width', fontsize=14)
plt.show()

数据挖掘 | 实验二 数据的可视化

e) (选做)将杂色鸢尾花和维吉利亚鸢尾花的花瓣长度分别进行等宽离散化为5个区间,分别统计两种花的花瓣长度的离散值相同的数量在本类花的占比,并分别用饼状图展示离散化的区间占比。

待补充···

四、实验小结

  1. 通过本次实验我复习了数据集成、数据清洗、及数据变换等数据处理的相关操作,认识到了新的matplotlib函数库并加以使用。
  2. matplotlib是一个优秀的画图工具库,可以实现很多功能,值得深度研究和探索。
  3. 学会使用matplotlib库的基本功能,如用matplotlib画折线图、散点图、直方图、箱型图等等。
  4. matplotlib中的的函数较多,需要多多练习和写代码来实现,才能更好的运用。
  5. 本次实验中用了经典的iris数据集,同时用数据可视化的方法去展示iris数据集中的内容,数据可视化的作用是可以通过直观的图表来表示三种鸢尾花的各项属性值的变化,更有利于对比。
  6. 自己的知识还存在很多漏洞和缺口,课下需要多加努力学习。

Original: https://blog.csdn.net/weixin_46264660/article/details/124303833
Author: 寒夜点孤灯
Title: 数据挖掘 | 实验二 数据的可视化

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/764629/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 用Flask+Element+Vue搭建md5、sha加密网站

    目录 * – 一、绘制网站页面 – + * 1.1 绘制输入框 * 1.2 绘制表单 – 二、flask后端接口 – 三、前后端数据…

    Python 2023年8月15日
    052
  • pytest使用(1)-基础

    python有很多不错的测试框架,比如RobotFramework,Unitest,这里要介绍一下pytest。可以参考,pytest文档因为文档介绍比较多,这里使用简单的几篇帖子…

    Python 2023年9月10日
    070
  • flask上传作品之dbm操作【包头文创网站开发】

    啊哦~你想找的内容离你而去了哦 内容不存在,可能为如下原因导致: ① 内容还在审核中 ② 内容以前存在,但是由于不符合新 的规定而被删除 ③ 内容地址错误 ④ 作者删除了内容。 可…

    Python 2023年8月14日
    046
  • 分布式链路追踪体验-skywalking入门使用

    旁友,你的线上服务是不是偶尔来个超时,或者突然抖动一下,造成用户一堆反馈投诉。然后你费了九牛二虎之力,查了一圈圈代码和日志才总算定位到问题原因了。或者公司内部有链路追踪系统,虽然可…

    Python 2023年10月22日
    057
  • Pandas:如何修改DataFrame中某一列的值?

    写这篇博客主要是因为在修改DataFrame列值的时候经常遇到bug,但到目前还没把这种错误复现出来。 DataFrame是Pandas中的主要数据结构之一,本篇博客主要介绍如何D…

    Python 2023年8月15日
    066
  • pygame下载(非常详细)

    pygame安装 第一次安装pygame,从网上查了很多资料,各种方式都有,我发现了一种很简单的方法,不用去官网找,直接输入命令就能下载,希望能给大家提供一些参考! 打开终端 1、…

    Python 2023年9月17日
    064
  • Javascript Map 对象使用说明

    Map 是 ES6 中引入的一种新的数据结构,对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。以前用的JS对象 Object也是可以把其属性看作键来定位数据,但…

    Python 2023年11月8日
    042
  • 【Python】一文弄懂python装饰器(附源码例子)

    目录 前言 一、什么是装饰器 二、为什么要用装饰器 三、简单的装饰器 四、装饰器的语法糖@ 五、装饰器传参 六、带参数的装饰器 七、类装饰器 八、带参数的类装饰器 九、装饰器的顺序…

    Python 2023年8月1日
    054
  • Python数据分析:Thinkbook14p+win10下的Python+PyCharm+Numpy+Pandas+PyQt5安装教程

    本文是按实际安装过程做的记录,安装过程中遇到了很多问题,文中记录了解决方法。为了避免走弯路,建议阅读本文全部建议后再操作。 电脑配置 Thinkbook 14P Win10 64位…

    Python 2023年8月28日
    056
  • 第四代极验

    博客园 :当前访问的博文已被密码保护 请输入阅读密码: Original: https://www.cnblogs.com/pythonywy/p/15905161.htmlAut…

    Python 2023年6月15日
    065
  • C盘满了,清理C盘常用步骤!

    真正的深度清理c盘 放心,大胆的删除! 第一步 删除临时文件 1.win+R调出命令框2.输入%temp% 点击确定 3.这里面的文件都是我们在运行软件时所产生的的临时文件,几乎每…

    Python 2023年10月27日
    033
  • Superset汉化、支持Oracle连接及自定义CSS样式

    准备基础环境,后续通过Linux部署,且为了方便移植,这里先在虚拟环境中部署,后续制作成镜像使用。 1. 准备虚拟环境 superset最低支持Python3.7 python3….

    Python 2023年8月14日
    048
  • Unity打包WebGL平台如何区别移动端和电脑端

    Unity打包WebGL平台如何区别移动端和电脑端完整解决方案 前情提要 最近有一个项目,其中有一个功能来控制角色移动,电脑端是使用WASD(键盘)控制,手机移动端呢 使用虚拟摇杆…

    Python 2023年9月29日
    055
  • 人工智能 | 基于波士顿房价预测线性回归实践

    声明:凡代码问题,欢迎在评论区沟通。承蒙指正,一起成长! 目录 一、实验目的 二、算法步骤 三、实验结果 1. 实验结果图 2.实验结果数据 3.实验分析 一、实验目的 通过波士顿…

    Python 2023年10月27日
    045
  • AI听曲识歌!哼曲、口哨吹,都能秒识! ⛵

    💡 作者:韩信子@ShowMeAI📘 深度学习实战系列:https://www.showmeai.tech/tutorials/42📘 自然语言处理实战系列:https://www…

    Python 2023年10月28日
    042
  • Python技术分享:ndarray对象的常用属性

    NumPy作为高性能科学计算和数据分析的基础包,是介绍其它重要数据分析工具的基础,掌握NumPy的功能及其用法,将有助于后续其他数据分析工具的学习。 NumPy中最重要的一个特点就…

    Python 2023年8月29日
    065
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球