在搜索鸢尾花数据集时看到一篇基于鸢尾花数据集的文章,其中数据可视化部分做的很好,所以自己在此复现一下,原文链接如下: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()
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 将每个多变量观测值转换为曲线并表示傅立叶级数的系数,这对于检测时间序列数据中的异常值很有用。
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
上一篇: 四、鸢尾花分类 |
下一篇: 数据分析之鸢尾花简单分析 |