目录
1、散点图
2、散点图+回归线
3、折线图
4、频数柱状图
5、分组散点图
6、箱型图
7、数值分布柱状图
8、频数分布图
9、联合分布图
10、数值分布柱状图
11、相关系数热力图
划重点
少走10年弯路
Seaborn是一个基于Python的数据可视化库,Seaborn提供了许多用于绘制统计图形的高级界面,在Matplotlib的基础上,Seaborn进行了更高级的封装,使得作图更加方便快捷。即便是没有什么基础的人,也能通过极简的代码,做出具有分析价值而又十分专业的图形。
虽然没有pyecharts的动态、交互功能,但是胜在便捷、代码量少、必须的配置也少,可以快速出图。
本文使用房价数据、房租数据、iris数据集进行展示,数据获取见文末
1、散点图
sns.scatterplot(x="面积(/㎡)", y="租金(元/月)",data=data.sample(1000,random_state=1));
添加分类的散点图,仅需要添加一个hue参数指定分组列名即可
sns.scatterplot(x="面积(/㎡)", y="租金(元/月)",data=data.sample(1000,random_state=1),hue="近地铁");
设置样式
sns.scatterplot(x="面积(/㎡)", y="租金(元/月)",data=data.sample(1000,random_state=1),style='近地铁')
2、散点图+回归线
sns.lmplot(x="面积(/㎡)", y="租金(元/月)",data=data.sample(1000,random_state=1))
sns.lmplot(data=data.sample(1000,random_state=2), x="面积(/㎡)", y="租金(元/月)",hue="近地铁",)
3、折线图
sns.lineplot(x="面积(/㎡)", y="租金(元/月)",data=data.head(100))
sns.lineplot(x="面积(/㎡)", y="租金(元/月)",data=data.sample(100,random_state=1),hue="近地铁")
添加col参数按照列进行分组展示子图
sns.lmplot(
data=data.sample(1000,random_state=2), x="面积(/㎡)", y="租金(元/月)",
col="所在区",
hue="近地铁",
col_wrap=2,
palette="muted", ci=None,
height=4, scatter_kws={"s": 30, "alpha": 1}
)
4、频数柱状图
sns.countplot(x='所在区',data=data)
频数图设置排序
color_order=['海淀', '朝阳', '丰台', '昌平', '西城', '房山', '通州', '顺义', '大兴', '东城', '石景山', '亦庄','门头沟', '密云']
sns.countplot(x='所在区',order=color_order,data=data)
5、分组散点图
sns.stripplot(x="所在区", y="面积(/㎡)",data=data.sample(1000,random_state=1))
sns.stripplot(x="所在区", y="面积(/㎡)",data=data.sample(1000,random_state=1),hue="近地铁")
6、箱型图
sns.boxplot(x="所在区", y="面积(/㎡)",data=data.sample(1000,random_state=2))
sns.boxenplot(x="所在区", y="面积(/㎡)",data=data.sample(1000,random_state=2),color="b",)
sns.boxplot(x="所在区", y="面积(/㎡)",data=data.sample(1000,random_state=2),hue="近地铁")
7、数值分布柱状图
柱状图用矩形条表示估计点和置信区间
sns.barplot(x="所在区", y="面积(/㎡)",data=data.sample(1000,random_state=2))
sns.barplot(x="所在区", y="面积(/㎡)",data=data.sample(1000,random_state=2),hue="近地铁")
8、频数分布图
sns.histplot(x=data['租金(元/月)'],kde=True)
9、联合分布图
sns.jointplot(x="面积(/㎡)", y="租金(元/月)",data=data.sample(1000,random_state=1),height=5)
10、数值分布柱状图
sns.pairplot(iris)
sns.pairplot(iris, hue="class", markers=["o", "s", "D"])
sns.pairplot(iris,kind='reg')
11、相关系数热力图
import seaborn as sns
correlation = df2.drop(['ID','sale_date'],axis=1).corr()
plt.figure(figsize=(16, 8),dpi=100)
sns.heatmap(correlation,square = True, annot=True, fmt='0.2f',vmax=0.8)
只显示半个矩阵
mask=np.zeros_like(correlation)
mask[np.triu_indices_from(mask)]=True
plt.figure(figsize=(12, 8),dpi=100)
sns.heatmap(correlation,cmap="YlGnBu",annot=True,mask=mask)
划重点
少走10年弯路
关注威信公众号 Python风控模型与数据分析,回复 seaborn 获取本篇数据及代码
还有更多理论、代码分享等你来拿