seaborn的特点

在Matplotlib上构建,支持numpy和pandas的数据结构可视化,甚至是scipy 和statsmodels的统计模型可视化
•多个内置主题及颜色主题
•可视化单一变量、二维变量用于比较数据集中各变量的分布情况
•可视化线性回归模型中的独立变量及不独立变量
•可视化矩阵数据,通过聚类算法探究矩阵间的结构
•可视化时间序列数据及不确定性的展示
•可在分割区域制图,用于复杂的可视化

seaborn安装

conda install seaborn
pip install seaborn

绘图

数据集分布可视化

单变量分布 sns.distplot()

•直方图

sns.distplot(kde=False)

import seaborn as sns
# 用pandas生成两组正态分布的随机数v1和v2
v1 = pd.Series(np.random.normal(0, 10, 1000), name='v1')
v2 = pd.Series(2 * v1 + np.random.normal(60, 15, 1000), name='v2')
v3 = np.concatenate((v1, v2)) #用numpy把v1和v2合并起来
plt.figure() #生成画布
sns.distplot(v3) #画出v3的直方图,此时带拟合线 
sns.distplot(v3,ked=False) #则只画出v3的直方图

•核密度估计

sns.distplot(hist=False) 或 sns.kdeplot()
•拟合参数分布
sns.distplot(kde=False, fit=)

双变量分布 sns.jointplot

•散布图

sns.jointplot()

plt.figure()
grid = sns.jointplot(v1, v2, alpha=0.4) #画散布图
grid.ax_joint.set_aspect('equal') #使x轴坐标和y轴坐标范围一致

这里写图片描述
•二维直方图 Hexbin
二维直方图就是散布图上的点有颜色作为区分,颜色越深代表此处数据多

sns.jointplot(v1, v2, kind='hex')

这里写图片描述

sns.jointplot(kind=‘hex’)

•核密度估计

sns.jointplot(kind=‘kde’)

plt.figure()
sns.jointplot(v1, v2, kind='kde')

这里写图片描述

数据集中变量间关系可视化

sns.pairplot()
pairplot可以通过颜色区分hue指定的类别,通过颜色可以看到此类别的数据在这两个变量上的分布情况

iris = pd.read_csv('iris.csv')
sns.pairplot(iris, hue='Name', diag_kind='kde') #因为hue='Name'所以图上有3中不同的颜色分别代表三种花

这里写图片描述

sns.swarmplot(x,y,data)

sns.swarmplot('Name', 'PetalLength', data=iris)

这里写图片描述

sns.violinplot(x,y,data)

sns.violinplot('Name', 'PetalLength', data=iris)

这里写图片描述

类别数据可视化

类别散布图

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

类别内数据分布

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

类别内统计图

•柱状图 sns.barplot()
•点图 sns.pointplot()

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐