本节使用Iris数据集的分析与可视化为例对Seaborn的绘图功能进行简单讲解。Iris数据集是常用的分类实验数据集,由Fisher在1936年收集整理,也称鸢尾花卉数据集,是一类多重变量分析的数据集。
数据集包含150个数据,分为3类,每类50个数据,每个数据包含4个属性。可通过花萼长度,花萼宽度,花瓣长度,花瓣宽度4个属性预测鸢尾花卉属于(Setosa,Versicolour,Virginica)三个种类中的哪一类。
表Iris 数据集(部分)

Id SepalLengthCm SepalWidthCm PetalLengthCm PetalWidthCm Species
1 5.1 3.5 1.4 0.2 Iris-setosa
2 4.9 3 1.4 0.2 Iris-setosa
3 4.7 3.2 1.3 0.2 Iris-setosa
……
51 7 3.2 4.7 1.4 Iris-versicolor
52 6.4 3.2 4.5 1.5 Iris-versicolor
53 6.9 3.1 4.9 1.5 Iris-versicolor
……
102 5.8 2.7 5.1 1.9 Iris-virginica
103 7.1 3 5.9 2.1 Iris-virginica
104 6.3 2.9 5.6 1.8 Iris-virginica
……

数据载入

绘图之前先利用Pandas载入Iris数据并将其转为Pandas DataFrame格式。使用前可以先查看数据的结构,以便根据数据结构和类型选择合适的图表进行可视化。

  1. import pandas as pd # 导入pandas库
  2. import warnings # 载入当前版本seaborn库时会有警告出现,先载入warnings,忽略警告
  3. import seaborn as sns # 导入seaborn库
  4. warnings.filterwarnings("ignore") # 忽略警告
  5. sns.set(style="white", color_codes=True) # 确定主题为white
  6. iris = pd.read_csv("iris.csv") # 读取csv数据并转为Pandas的 DataFrame格式
  7. print(iris.head()) # 用head函数看一下前5行数据,确定数据结构
  8. print(iris["Species"].value_counts()) # 用counts函数查看每个类别有多少样本

用head函数可查看前5行数据,以确定数据结构正确,该函数的输出为:

  1. Id SepalLengthCm SepalWidthCm PetalLengthCm PetalWidthCm Species
  2. 0 1 5.1 3.5 1.4 0.2 Iris-setosa
  3. 1 2 4.9 3.0 1.4 0.2 Iris-setosa
  4. 2 3 4.7 3.2 1.3 0.2 Iris-setosa
  5. 3 4 4.6 3.1 1.5 0.2 Iris-setosa
  6. 4 5 5.0 3.6 1.4 0.2 Iris-setosa

counts函数可用于查看数据分几类?每一类多少个样本?是否为均衡分类。该函数的输出为:

  1. Iris-versicolor 50
  2. Iris-setosa 50
  3. Iris-virginica 50
  4. Name: Species, dtype: int64

从counts函数输出结果可以看出,数据样本分布很均匀。