【数据可视化入门】从鸢尾花数据集说起

demo全部来自kaggle上这篇著名的文章https://www.kaggle.com/benhamner/python-data-visualizations

写的相当好,真正是是四两拨千斤了,里面有的功能我自己也实现过,但是远远没有人家用的函数简洁和优雅。下面的代码仅仅是原文的一个汇总和加了一点点中文注释,由于被空行隔开的每一个代码段都会返回一张图片,写到一起只是方便汇总,建议由jupyter notebook食用。

# -*- coding: utf-8 -*-
"""
Created on Tue Feb 19 19:37:39 2019

@author: xuefei
"""

#对鸢尾花数据集的一系列可视化


#可视化中用到的三个经典的包:pandas、seaborn、matplotlib
import pandas as pd
import warnings
warnings.filterwarnings("ignore")
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="white", color_codes=True)

#获得我们想要的数据集
#数据集下载地址https://pan.baidu.com/s/1LKTAkj8DKEFv-kBCQWZIIg 密码:ae1e
iris = pd.read_csv('D:\\学习\\研一上\\数据挖掘\\kaggle入门\\数据可视化\\iris.csv',engine='python')
iris.rename(columns=({'Unnamed: 0':'id'}),inplace = True)
#看一下前几行,前四列分别是花萼长度、花萼宽度、花瓣长度、花瓣宽度
iris.head()

#看一看样本的分布
iris.Species.value_counts()

#下面我们来认识数据
#花萼长度和宽度的分布
iris.plot(kind = 'scatter', x = 'Sepal.Length',y = 'Sepal.Width')

#花瓣长度和宽度的分布,用sns甚至可以画一个散点图+直方图
sns.jointplot(x="Petal.Length", y="Petal.Width", data=iris, size=6)

#在二维的曲面上表示这些点的分布(可能可以找出异常点)
sns.FacetGrid(iris, hue="Species", size=5).map(plt.scatter, "Sepal.Length", "Sepal.Width").add_legend()

#查看标签和某个特征的分布关系
sns.boxplot(x="Species", y="Petal.Length", data=iris)

#看关系的同时显示散点
ax = sns.boxplot(x="Species", y="Petal.Length", data=iris)
ax = sns.stripplot(x="Species", y="Petal.Length", data=iris, jitter=True, edgecolor="gray")

#分布还可以用小提琴图来表示,更好看
sns.violinplot(x="Species", y="Petal.Length", data=iris, size=6)

#某个连续数值参数和标签的关系
sns.FacetGrid(iris, hue="Species", size=6).map(sns.kdeplot, "Petal.Length").add_legend()

#变量之间的两两关系
sns.pairplot(iris.drop("id", axis=1), hue="Species", size=3)

#两两关系中,用密度图显示对角线元素
sns.pairplot(iris.drop("id", axis=1), hue="Species", size=3, diag_kind="kde")

#快速按物种对各个标签的分布作图
iris.drop("id", axis=1).boxplot(by="Species", figsize=(12, 6))

#多变量并行可视化的另一个方式,非常直观的看出各变量的差别
from pandas.tools.plotting import parallel_coordinates
parallel_coordinates(iris.drop("id", axis=1), "Species")















不过说到底,别人能教的只是操作,而决定成败的往往是意识。实践出真知,加油。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值