seaborn 是针对统计绘图的,可以看做是matplotlib的补充,是在matplotlib的基础上进行了更高级的API封装,使得作图更加容易,在大多数情况下使用seaborn就能做出很具有吸引力的图,如果需要更复杂的自定义的图还是要用matplotlib。
(1)散点图stripplot、带分布的散点图swarmplot、箱线图boxplot、小提琴图voilinplot、直方图barplot、计数直方图countplot 都属于分类数据类型
#先导入模块和数据
import seaborn as sns
sns.set_style("whitegrid")
#默认主题是darkgrid
tips = sns.load_dataset("tips")
#可以用tips.head()来查看数据格式
箱线图
ax = sns.boxplot(x="day", y="total_bill", data=tips)
ax = sns.boxplot(x="day", y="total_bill", hue="smoker",data=tips)
#hue是分组,以是否吸烟来将day进行分组绘制
散点图
ax=sns.stripplot(x="day",y="total_bill",data=tips)
sns.stripplot(x="day", y="total_bill", data=tips, jitter=True)
#上图看出散点图容易重叠,所以加jitter参数抖动来调整位置
小提琴图
ax = sns.violinplot(x="total_bill", y="day", data=tips)
ax = sns.violinplot(x="day", y="total_bill",hue="smoker"
,data=tips,split=True)
#hue分组,split=Ture似两个分组共用一个violin,节省空间
(2)distplot直方图、kdeplot密度曲线图
distplot:
ax = sns.distplot(tips["total_bill"])
ax = sns.distplot(tips["total_bill"], kde= False)
ax = sns.distplot(tips["total_bill"],
kde_kws={"color": "y", "lw": 2, "label" : "KDE"},
hist_kws={"histtype": "step", "linewidth" : 3, "alpha":1, "color": 'g'})
kdeplot:
ax = sns.kdeplot(tips['total_bill'], shade= True, color="r")
#单变量密度图,shade参数设置为True表示填充曲线下面积
ax = sns.kdeplot(tips['total_bill'], tips['tip'],
cmap="Blues",shade=True)
#双变量密度图,相当于等高线图,shade等于True表示用颜色深浅来表示密度大小
(3)regplot回归图
ax = sns.regplot(x="total_bill", y="tip", data=tips)
import numpy as np
ax = sns.regplot(x="size", y="total_bill", data=tips, x_estimator=np.mean)
(4)heatmap热点图
data = tips.corr()
ax = sns.heatmap(data,vmin=0, vmax=1)
(5)tsplot时间序列图
gammas = sns.load_dataset("gammas")
ax = sns.tsplot(time="timepoint", value="BOLD signal",
unit="subject",condition="ROI",data=gammas)
(6)factorplot
#factorplot是分类变量的集合作图方式,利用kind参数来设置图形类型
ax=sns.factorplot(x="time",y="tip",hue="sex",data=tips,kind="violin")
#kind参数可以设置为point,bar,count,box,violin,strip这几个分类图形类型
(7)jointplot双变量或单变量相交图
jointplot是画两个变量或者单变量的图像,用kind设置图形类型
ax = sns.jointplot(x="tip", y="total_bill",data=tips, kind="kde")
kind参数可以设置为scatter, reg, resid, kde, hex这几个图形类型
(8)pairplot数据列对双变量图
ax = sns.pairplot(tips)
#创建一个矩阵图,显示每个列(数字格式的列)之间的关系,默认情况下也绘制对角轴处的单变量图形