对seaborn库的简单学习
参考网站
https://seaborn.pydata.org/api.html
https://www.cntofu.com/book/172/README.md
seaborn简介
seaborn是在matplotlib基础上进行封装,seaborn就是让困难的东西更加简单。用Matplotlib最大的困难是其默认的各种参数,而Seaborn则完全避免了这一问题。seaborn是针对统计绘图的,一般来说,seaborn能满足数据分析90%的绘图需求,复杂的自定义图形,还是要Matplotlib。Seaborn旨在使可视化成为探索和理解数据的核心部分。其面向数据集的绘图功能对包含整个数据集的数据框和数组进行操作,并在内部执行必要的语义映射和统计聚合,以生成信息图。
导入需要的库和数据集,大家可以任意选择一个数据集
import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams['font.sans-serif']=['SimHei'] # 设置字体样式
plt.rcParams['axes.unicode_minus']=False # 设置字符不显示
import warnings
warnings.filterwarnings('ignore')
import seaborn as sns
import pandas as pd
data = pd.read_csv('./data1')
data.head()
查看数据信息
各参数的作用及参入数据的类型
x,y,hue 数据集变量 变量名
date 数据集 数据集名
row,col 更多分类变量进行平铺显示 变量名
col_wrap 每行的最高平铺数 整数
estimator 在每个分类中进行矢量到标量的映射 矢量
ci 置信区间 浮点数或None
n_boot 计算置信区间时使用的引导迭代次数 整数
units 采样单元的标识符,用于执行多级引导和重复测量设计 数据变量或向量数据
order, hue_order 对应排序列表 字符串列表
row_order, col_order 对应排序列表 字符串列表
kind : 可选:point 默认, bar 柱形图, count 频次, box 箱体, violin 提琴, strip 散点,swarm 分散点
size 每个面的高度(英寸) 标量
aspect 纵横比 标量
orient 方向 “v”/“h”
color 颜色 matplotlib颜色
palette 调色板 seaborn颜色色板或字典
legend hue的信息面板 True/False
legend_out 是否扩展图形,并将信息框绘制在中心右边 True/False
share{x,y} 共享轴线 True/False
1.关系图 (Relational plots)
1.1 relplot
sns.relplot(x='卧室数量', y='月租金', kind='line', data=data) # 相当于sns.lineplot
# 通过绘制平均值和平均值周围的95%置信区间,汇总每个x值处的多个测量值
sns.relplot(x='卧室数量', y='月租金', kind='line', data=data, ci=None) # 不显示聚合的阴影
sns.relplot(x='卧室数量', y='月租金', kind='scatter', data=data)
1.2 scatterplot
sns.scatterplot(x='卧室数量', y='月租金', data=data)
sns.relplot(x='小区名', y='月租金', kind='scatter', data=data)
sns.scatterplot(x='小区名', y='月租金', data=data, hue='厅的数量')
sns.scatterplot(x='小区名', y='月租金', data=data, style='厅的数量')
1.3 lineplot
sns.lineplot(x='总楼层', y='月租金', data=data)
2.分布图
2.1 displot
displot([data, x, y, hue, row, col, …]) 图形级接口,用于在FacetGrid上绘制分布图。
sns.displot(data=data, x='小区名', kind='kde')
2.2 histplot
histplot([data, x, y, hue, weights, stat, …]) 绘制单变量或双变量直方图以显示数据集的分布。
sns.histplot(data=data, x='小区名', y='月租金')
2.3 kdeplot
kdeplot([x, y, shade, vertical, kernel, bw, …])使用核密度估计绘制一元或二元分布图。
核密度估计(kernel density estimation)是在概率论中用来估计未知的密度函数,属于非参数检验方法之一。通过核密度估计图可以比较直观的看出数据样本本身的分布特征。
sns.kdeplot(data['小区名'], data['月租金'])
sns.kdeplot(data['月租金'])
2.4 ecdfplot
ecdfplot([data, x, y, hue, weights, stat, …]) 绘制经验累积分布函数。
sns.ecdfplot(data=data, x='月租金')
2.5 rugplot
rugplot([x, height, axis, ax, data, y, hue, …])通过沿x和y轴绘制记号来绘制边缘分布。
sns.rugplot(data=data, x='房屋面积', y='月租金')
2.6 distplot
distplot([a, bins, hist, kde, rug, fit, …])不推荐:灵活地绘制观察值的单变量分布。
sns.distplot(data['月租金'])
分类图
3.1 catplot
catplot(*[, x, y, hue, data, row, col, …])图形级接口,用于在FacetGrid上绘制分类图。
sns.catplot(data=data, x='房屋朝向', y='月租金')
3.2 stripplot
stripplot(*[, x, y, hue, data, order, …])画一个散点图,其中一个变量是范畴变量。
sns.stripplot(data=data, x='厅的数量', y='月租金')
3.3 swarmplot
swarmplot(*[, x, y, hue, data, order, …])用不重叠的点绘制一个分类散点图。
sns.swarmplot(data=data, x='厅的数量', y='月租金')
3.4 boxplot
boxplot(*[, x, y, hue, data, order, …])绘制一个方框图以显示与类别相关的分布。
sns.boxplot(data=data, x='厅的数量', y='月租金')
3.5 violinplot
violinplot(*[, x, y, hue, data, order, …])绘制盒形图和核密度估计的组合。
sns.violinplot(data=data, x='厅的数量', y='月租金')
3.6 boxenplot
boxenplot(*[, x, y, hue, data, order, …])为较大的数据集绘制增强的方框图。
sns.boxenplot(data=data, x='厅的数量', y='月租金')
3.7 pointplot
pointplot(*[, x, y, hue, data, order, …])使用散点图图示符显示点估计值和置信区间。
sns.pointplot(data=data, x='厅的数量', y='月租金')
3.8 barplot
barplot(*[, x, y, hue, data, order, …])将点估计和置信区间显示为矩形条。
sns.barplot(data=data, x='厅的数量', y='月租金')
3.9 countplot
countplot(*[, x, y, hue, data, order, …])使用条形图显示每个分类箱中的观察值计数。
sns.countplot(data=data, x='厅的数量')
回归图
4.1 lmplot
lmplot(*[, x, y, data, hue, col, row, …])绘图数据和回归模型适用于FacetGrid。
sns.lmplot(data=data, x='厅的数量', y='月租金')
4.2 regplot
regplot(*[, x, y, data, x_estimator, …])绘图数据和线性回归模型拟合。
sns.regplot(data=data, x='厅的数量', y='月租金')
4.3 countplot
residplot(*[, x, y, data, lowess, …])绘制线性回归的残差。
sns.regplot(data=data, x='厅的数量', y='卧室数量')
矩阵图
5.1 heatmap
heatmap(data, *[, vmin, vmax, cmap, center, …])将矩形数据绘制为彩色编码矩阵。
import numpy as np
arr = np.array([[1,2,3],[4,5,6]])
sns.heatmap(arr)
5.2 clustermap
clustermap(data, *[, pivot_kws, method, …])将矩阵数据集绘制为分层聚集的热图。
sns.clustermap(arr)