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)#将调色板设置到图中
  1. 但是如果我们遇到使用的颜色大于6种的时候,我们可以使用hls的颜色空间,这是对RGB值的进行一种简单装换的算法。
    sns.palplot(sns.color_palette('hls', 8))#使用hls,将颜色均分为8种
    
  2. 我们还可以使用度Paired,来设置调色板。
    sns.palplot(sns.color_palette('Paired', 8))
    
  3. xkcd_rgb是一个针对RGB生成的949种颜色字典。
    sns.xkcd_rgb("acid green")
    
  4. xkcd_palette()从指定的xkcd_rgb中随机一种
    color=["acid green", 'adobe','bluey green']
    sns.xkcd_palette(color)
    
  5. 连续颜色
    color_palette('Blues')#表示颜色是蓝色系的,并且颜色是逐渐加深的。
    color_palette('Blues_r')#名称后面加一个_r表示,颜色是有深至浅的
    
  6. 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()

文章信息

张雪随笔
master
Homepage
Issues
Download

This Software is under the terms of The Unlicense.