首页 > 分享 > 鸢尾花数据集可视化分析

鸢尾花数据集可视化分析

在搜索鸢尾花数据集时看到一篇基于鸢尾花数据集的文章,其中数据可视化部分做的很好,所以自己在此复现一下,原文链接如下:https://www.jianshu.com/p/52b86c774b0b

一:导入需要的库

%matplotlib inline

import matplotlib.pyplot as plt

import numpy as np

import pandas as pd

import seaborn as sns

二:读取数据,查看数据集的基本信息

data = pd.read_csv('iris.data', header = None)

data.head()

查看前5行数据:

0 1 2 3 4

05.13.51.40.2Iris-setosa

14.93.01.40.2Iris-setosa

24.73.21.30.2Iris-setosa

34.63.11.50.2Iris-setosa

45.03.61.40.2Iris-setosa

 查看数据集的总体信息:

data.info()

<class 'pandas.core.frame.DataFrame'>

RangeIndex: 150 entries, 0 to 149

Data columns (total 5 columns):

0 150 non-null float64

1 150 non-null float64

2 150 non-null float64

3 150 non-null float64

4 150 non-null object

dtypes: float64(4), object(1)

memory usage: 5.9+ KB

四个属性值,一个标签属性,没有缺失值

 查看数据集的统计信息:

data.describe()

0123

count150.000000150.000000150.000000150.000000

mean5.8433333.0540003.7586671.198667

std0.8280660.4335941.7644200.763161

min4.3000002.0000001.0000000.100000

25%5.1000002.8000001.6000000.300000

50%5.8000003.0000004.3500001.300000

75%6.4000003.3000005.1000001.800000

max7.9000004.4000006.9000002.500000

三:绘制小提琴图,观察数据分布

设置颜色

antV = ['#1890FF', '#2FC25B', '#FACC14', '#223273', '#8543E0', '#13C2C2', '#3436C7', '#F04864']'

 以特征为单位分离数据:

分离SepalLengthCm数据

data_setosa0 = data[data[4]=='Iris-setosa'][0]

data_versicolor0 = data[data[4]=='Iris-versicolor'][0]

data_virginica0 = data[data[4]=='Iris-virginica'][0]

data_SepalLengthCm = pd.DataFrame({'setosa':data_setosa0, 'versicolor':data_versicolor0, 'virginica':data_virginica0})

分离SepalWidthCm数据

data_setosa1 = data[data[4]=='Iris-setosa'][1]

data_versicolor1 = data[data[4]=='Iris-versicolor'][1]

data_virginica1 = data[data[4]=='Iris-virginica'][1]

data_SepalWidthCm = pd.DataFrame({'setosa':data_setosa1, 'versicolor':data_versicolor1, 'virginica':data_virginica1})

分离PetalLengthCm数据 

data_setosa2 = data[data[4]=='Iris-setosa'][2]

data_versicolor2 = data[data[4]=='Iris-versicolor'][2]

data_virginica2 = data[data[4]=='Iris-virginica'][2]

data_PetalLengthCm = pd.DataFrame({'setosa':data_setosa2, 'versicolor':data_versicolor2, 'virginica':data_virginica2})

分离PetalWidthCm数据

data_setosa3 = data[data[4]=='Iris-setosa'][3]

data_versicolor3 = data[data[4]=='Iris-versicolor'][3]

data_virginica3 = data[data[4]=='Iris-virginica'][3]

data_PetalWidthCm = pd.DataFrame({'setosa':data_setosa3, 'versicolor':data_versicolor3, 'virginica':data_virginica3})

绘制小提琴图:

f, axes = plt.subplots(2, 2, figsize = (8, 8), sharex = True)

sns.despine(left = True)

sns.violinplot(data=data_SepalLengthCm, linewidth=1, width=0.8, palette=antV, ax=axes[0, 0])

axes[0, 0].set_xlabel('Kinds')

axes[0, 0].set_ylabel('SepalLengthCm')

sns.violinplot(data=data_SepalWidthCm, linewidth=1, width=0.8, palette=antV, ax=axes[0, 1])

axes[0, 1].set_xlabel('Kinds')

axes[0, 1].set_ylabel('SepalWidthCm')

sns.violinplot(data=data_PetalLengthCm, linewidth=1, width=0.8, palette=antV, ax=axes[1, 0])

axes[1, 0].set_xlabel('Kinds')

axes[1, 0].set_ylabel('PetalLengthCm')

sns.violinplot(data=data_PetalWidthCm, linewidth=1, width=0.8, palette=antV, ax=axes[1, 1])

axes[1, 1].set_xlabel('Kinds')

axes[1, 1].set_ylabel('PetalWidthCm')

plt.show()

四:绘制 pointplot图

f, axes = plt.subplots(2, 2, figsize=(8, 8), sharex=True)

sns.despine(left = True)

sns.pointplot(data=data_SepalLengthCm, color=antV[2], ax=axes[0, 0])

axes[0, 0].set_xlabel('Kinds')

axes[0, 0].set_ylabel('SepalLengthCm')

sns.pointplot(data=data_SepalWidthCm, color=antV[2], ax=axes[0, 1])

axes[0, 1].set_xlabel('Kinds')

axes[0, 1].set_ylabel('SepalWidthCm')

sns.pointplot(data=data_PetalLengthCm, color=antV[2], ax=axes[1, 0])

axes[1, 0].set_xlabel('Kinds')

axes[1, 0].set_ylabel('PetalLengthCm')

sns.pointplot(data=data_PetalWidthCm, color=antV[2], ax=axes[1, 1])

axes[1, 1].set_xlabel('Kinds')

axes[1, 1].set_ylabel('PetalWidthCm')

plt.show()

五:绘制各个特征之间的关系矩阵

g = sns.pairplot(data=data, palette=antV, hue=4)

六:绘制Andrews Curves

使用 Andrews Curves 将每个多变量观测值转换为曲线并表示傅立叶级数的系数,这对于检测时间序列数据中的异常值很有用。

plt.subplots(figsize = (10, 8))

pd.plotting.andrews_curves(data, 4, colormap = 'cool')

plt.show()

七: 绘制热图,观察数据特征之间的先关性

fig = plt.gcf()

fig.set_size_inches(12, 8)

fig = sns.heatmap(data.corr(), annot=True, cmap='GnBu', linewidths=1,

linecolor='k', square=True, mask=False, vmin=1,

cbar_kws={"orientation":"vertical"}, cbar=True)

相关知识

分析鸢尾花数据集
基于Echarts的鸢尾花数据可视化
机器学习之路:经典的鸢尾花数据集
鸢尾花数据集下载
【机器学习实战】科学处理鸢尾花数据集
python鸢尾花数据集的分类问题 -- 逻辑回归问题研究
【机器学习】经典数据集鸢尾花的分类识别
实验一:鸢尾花数据集分类
iris鸢尾花数据集最全数据分析写在前面本文介绍数据预处理
JavaScript实现的风飓风数据可视化分析

网址: 鸢尾花数据集可视化分析 https://m.huajiangbk.com/newsview387258.html

所属分类:花卉
上一篇: 四、鸢尾花分类
下一篇: 数据分析之鸢尾花简单分析