【Python与机器学习3-4】Seaborn绘图
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()
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)