Seaborn是Python基于matplotlib的数据可视化工具。它提供了很多高层封装的函数, 帮助数据分析人员快速绘制美观的数据图形,而避免了许多额外的参数配置问题。 安装:pip3 install seaborn 官方demo:http://seaborn.pydata.org/examples/index.html
1.set_style( ) set( )
set_style()是用来设置主题的,Seaborn有五个预设好的主题: darkgrid , whitegrid , dark , white ,和 ticks 默认: darkgrid set()通过设置参数可以用来设置背景,调色板等,更加常用。比如 : sns.set(style="whitegrid")
2.distplot( ) kdeplot( )
distplot( )为hist加强版,kdeplot( )为密度曲线图.
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt
sns.distplot(df_iris['petal length'], ax = axes[0], kde = True, rug = True) # kde 密度曲线 rug 边际毛毯
sns.kdeplot(df_iris['petal length'], ax = axes[1], shade=True) # shade 阴影
3.despine() 去掉图表的边框。默认去掉上和右。offset表示距离边框的距离(默认是距离下边框)
sns.despine(fig=None, ax=None, top=True, right=True, left=False, bottom=False, offset=None, trim=False)
4.一系列子图的风格都不一样 使用with隔离不同的子图的样式,with之内采用一种风格。
with sns.axes_style("whitegrid"):
plt.subplot(211)
sinplot()
with sns.axes_style("ticks"):
plt.subplot(211)
sinplot()
5.箱型图 boxplot( )
sns.boxplot(x="day", y="total_bill", hue="sex", data=tips, palette="PRGn") #palette 调色板
plt.show()
6.联合分布jointplot( ) 右上角显示相关系数
sns.jointplot("total_bill", "tip", tips)
7.热点图heatmap( )
sns.heatmap(corrmat, square=True, linewidths=.5, annot=True)
8.散点图scatter( )
plt.scatter(x=train['full_sq'], y=train['price_doc'], c='r')
9.pointplot画出变量间的关系
sns.pointplot(grouped_df.floor.values, grouped_df.price_doc.values, alpha=0.8, color=color[2])
iris = sns.load_dataset("iris")#seaborn内置的加载demo数据的函数。函数自动从GitHub上下载csv文件。
sns.pairplot(iris)# 会将数据中两两进行对比
plt.show()
10.pairplot( )
sns.pairplot(iris, vars=["sepal width", "sepal length"],hue='class',palette="husl") #hue 选择分类列
11.FacetGrid( )
tips = sns.load_dataset("tips")
print(tips.head())
g = sns.FacetGrid(tips, col='sex')# 将数据根据性别分类
g.map(plt.scatter, 'total_bill', 'tip')# 第一个参数是图的类型,plt.scatter散点图;每一种性别下,total_bill 和 tip 进行分对比
g.add_legend()
plt.show()
g = sns.FacetGrid(tips, col="sex")
g.map(sns.distplot, "tip")# plt.distplot柱形图,添加密度函数; 只能进行一种数据的分析
plt.show()
# KDE等高线
g = sns.FacetGrid(tips, col="sex")
g.map(sns.kdeplot, 'total_bill', 'tip')
plt.show()
g = sns.FacetGrid(tips, col="time", row="smoker")
g = g.map(plt.hist, "total_bill", color="r")
plt.show()
12.set_context
context=None, {paper, notebook, talk, poster}设置画板纸张大小。 font_scale=1, 设置图中字体大小 rc={"lines.linewidth": 2} , 设置线的粗细
13.color_palette() 调色板 注意:color_palette 不能使用matplotlib支持的颜色 color_palette有默认设置好的六个颜色:deep, muted, bright, pastel, dark, colorblind
color_one = sns.color_palette()#创建调色板
sns.palplot(color_one)#将调色板设置到图中
- 但是如果我们遇到使用的颜色大于6种的时候,我们可以使用hls的颜色空间,这是对RGB值的进行一种简单装换的算法。
sns.palplot(sns.color_palette('hls', 8))#使用hls,将颜色均分为8种 - 我们还可以使用度Paired,来设置调色板。
sns.palplot(sns.color_palette('Paired', 8)) - xkcd_rgb是一个针对RGB生成的949种颜色字典。
sns.xkcd_rgb("acid green") - xkcd_palette()从指定的xkcd_rgb中随机一种
color=["acid green", 'adobe','bluey green'] sns.xkcd_palette(color) - 连续颜色
color_palette('Blues')#表示颜色是蓝色系的,并且颜色是逐渐加深的。 color_palette('Blues_r')#名称后面加一个_r表示,颜色是有深至浅的 - light_palette()和dark_palette()指定颜色的深浅风格
14.回归分析
# tips 是在餐厅吃饭收费和消费的统计。total_bill总消费, tip小费,sex客户性别
tips = sns.load_dataset("tips")#seaborn内置的加载demo数据的函数。函数自动从GitHub上下载csv文件。
print("数据结构\r\n", tips.head())
# 创建total_bill总消费 和 tip小费 进行回归分析。包括拟合的线性直线
sns.regplot(x = 'total_bill', y = 'tip', data = tips)
#sns.regplot(x=tips['total_bill'], y=tips['tip'])
plt.show()
# x_jitter 是x轴的值在0.5 范围内进行抖动(为了更好的对数据进行回归分析)
sns.regplot(x='size', y='tip', data=tips, x_jitter=0.05)
plt.show()
15.分析数据分布情况
# 分析数据分布情况
# 1. 使用stripplot,形成类似于散点图的分布
sns.stripplot(x = 'day', y = 'total_bill', data = tips, jitter=True)
plt.show()
# 2. 使用swarmplot,比stripplot有更好的数据排列。
sns.swarmplot(x = 'day', y = 'total_bill', data = tips)
plt.show()
# 3.violinplot将分布情况绘制成色斑图
sns.violinplot(x = 'day', y = 'total_bill', data = tips)
plt.show()
# 4. hue多种数据混合显示
sns.violinplot(x = 'day', y = 'total_bill', hue='sex', data = tips)
plt.show()
# 5. hue多种数据混合显示(split=True,混合在一起显示)
sns.violinplot(x='day', y='total_bill', hue='sex', data=tips, split=True)
plt.show()
# 6. 多种图混合使用
sns.violinplot(x = 'day', y = 'total_bill', data = tips, inner=None)
#alpha 透明度
sns.swarmplot(x = 'day', y = 'total_bill', data = tips, color='w', alpha=0.5)
plt.show()
- 本文作者:zhangxue
- 本文链接:https://lucksnow1989.github.io/article/13.脚本语言/python/第三方库/seaborn/04.Seaborn可视化库.html
- 版权声明:本文为本人原创文章,遵循 CC 4.0 BY-NC-SA版权协议,转载请附上原文出处链接和本声明。