博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python学习笔记——数据分析之Seaborn绘图
阅读量:4218 次
发布时间:2019-05-26

本文共 2343 字,大约阅读时间需要 7 分钟。

目录


Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn就能做出很具有吸引力的图,而使用matplotlib就能制作具有更多特色的图。应该把Seaborn视为matplotlib的补充,而不是替代物。

  • Python中的一个制图工具库,可以制作出吸引人的、信息量大的统计图

  • 在Matplotlib上构建,支持numpy和pandas的数据结构可视化。

  • 多个内置主题及颜色主题

  • 可视化单一变量、二维变量用于比较数据集中各变量的分布情况

  • 可视化线性回归模型中的独立变量及不独立变量

import numpy as npimport pandas as pd# from scipy import statsimport matplotlib.pyplot as pltimport seaborn as sns# %matplotlib inline

数据集分布可视化

单变量分布 sns.distplot()

示例代码:

# 单变量分布x1 = np.random.normal(size=1000)sns.distplot(x1);x2 = np.random.randint(0, 100, 500)sns.distplot(x2);

运行结果:

 

直方图 sns.distplot(kde=False)

示例代码:

# 直方图sns.distplot(x1, bins=20, kde=False, rug=True)

运行结果:

核密度估计 sns.distplot(hist=False) 或 sns.kdeplot()

示例代码:

# 核密度估计sns.distplot(x2, hist=False, rug=True)

运行结果: 

双变量分布

示例代码:

# 双变量分布df_obj1 = pd.DataFrame({"x": np.random.randn(500),                   "y": np.random.randn(500)})df_obj2 = pd.DataFrame({"x": np.random.randn(500),                   "y": np.random.randint(0, 100, 500)})

散布图 sns.jointplot()

示例代码:

# 散布图sns.jointplot(x="x", y="y", data=df_obj1)

运行结果:

二维直方图 Hexbin sns.jointplot(kind=‘hex’)

示例代码:

# 二维直方图sns.jointplot(x="x", y="y", data=df_obj1, kind="hex");

运行结果:

核密度估计 sns.jointplot(kind=‘kde’)

示例代码:

# 核密度估计sns.jointplot(x="x", y="y", data=df_obj1, kind="kde");

运行结果:

数据集中变量间关系可视化 sns.pairplot()

示例代码:

# 数据集中变量间关系可视化dataset = sns.load_dataset("tips")#dataset = sns.load_dataset("iris")sns.pairplot(dataset);

运行结果:

类别数据可视化

#titanic = sns.load_dataset('titanic')#planets = sns.load_dataset('planets')#flights = sns.load_dataset('flights')#iris = sns.load_dataset('iris')exercise = sns.load_dataset('exercise')

类别散布图

sns.stripplot() 数据点会重叠

示例代码:

sns.stripplot(x="diet", y="pulse", data=exercise)

运行结果:

sns.swarmplot() 数据点避免重叠,hue指定子类别

示例代码:

sns.swarmplot(x="diet", y="pulse", data=exercise, hue='kind')

运行结果: 

类别内数据分布

盒子图 sns.boxplot(), hue指定子类别

示例代码:

# 盒子图sns.boxplot(x="diet", y="pulse", data=exercise)#sns.boxplot(x="diet", y="pulse", data=exercise, hue='kind')

运行结果:

小提琴图 sns.violinplot(), hue指定子类别

示例代码:

# 小提琴图#sns.violinplot(x="diet", y="pulse", data=exercise)sns.violinplot(x="diet", y="pulse", data=exercise, hue='kind')

运行结果:

类别内统计图

柱状图 sns.barplot()

示例代码:

# 柱状图sns.barplot(x="diet", y="pulse", data=exercise, hue='kind')

运行结果:

点图 sns.pointplot()

示例代码:

# 点图sns.pointplot(x="diet", y="pulse", data=exercise, hue='kind');

运行结果:

 

你可能感兴趣的文章
RMAN RAC 到 单实例 duplicate 自动分配通道 触发 ORA-19505 错误
查看>>
mysql 随机分页的优化
查看>>
DB2快速创建测试库
查看>>
利用db2look查看ddl
查看>>
java中的mmap实现
查看>>
Linux音频编程指南
查看>>
SD卡驱动分析--基于高通平台
查看>>
[图文] Seata AT 模式分布式事务源码分析
查看>>
pm 源码分析
查看>>
Sending the User to Another App
查看>>
kmsg_dump
查看>>
Getting a Result from an Activity
查看>>
Allowing Other Apps to Start Your Activity
查看>>
dev/mem
查看>>
pfn_valid 源码分析
查看>>
dev/kmem 和dev/mem的区别
查看>>
test-definitions/blob/master/auto-test/bigdata/bigdata.sh
查看>>
/test-definitions/blob/master/auto-test/blktrace/blktrace.sh
查看>>
test-definitions/blob/master/auto-test/blogbench/blogbench.sh
查看>>
test-definitions/blob/master/auto-test/boost/boost.sh
查看>>