Python数据可视化库-----Seaborn(唐宇迪机器学习笔记)

简介

什么是Seaborn

Seaborn是基于matplotlib的图形可视化python包。它提供了一种高度交互式界面,便于用户能够做出各种有吸引力的统计图表。

Seaborn是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn能做出很具有吸引力的图,而使用matplotlib就能制作具有更多特色的图。应该把Seaborn视为matplotlib的补充,而不是替代物。同时它能高度兼容numpy与pandas数据结构以及scipy与statsmodels等统计模式。

 

seaborn 0.9 中文文档

 

import seaborn as sns
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt

def sinplot(flip=1):
    x=np.linspace(0,14,100)#在区间0到14上找100个点
    for i in range(1,7):#画六条线
        plt.plot(x,np.sin(x+i*.5)*(7-i)*flip)
    plt.show()

sinplot()

 

 

 使用seaborn默认风格

sns.set()
import seaborn as sns
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt

def sinplot(flip=1):
    x=np.linspace(0,14,100)#在区间0到14上找100个点
    for i in range(1,7):#画六条线
        plt.plot(x,np.sin(x+i*.5)*(7-i)*flip)
    plt.show()


sns.set()#使用seaborn默认风格
sinplot()

 与上图相比,有一些变化。

 

 

seaborn中有5种主题风格

  1. darkgrid
  2. whitegrid
  3. dark
  4. white
  5. ticks

 

 

 

 

sns.despine()#去掉不需要的线,默认去掉上面和右面的线

 

import seaborn as sns
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt


data = np.random.normal(size=(20, 6)) + np.arange(6) / 2
sns.violinplot(data=data)
sns.despine(offset=10)
plt.show()

 

 

 

import seaborn as sns
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt

def sinplot(flip=1):
    x=np.linspace(0,14,100)#在区间0到14上找100个点
    for i in range(1,7):#画六条线
        plt.plot(x,np.sin(x+i*.5)*(7-i)*flip)
    plt.show()

sns.set()
sns.set_context("paper")#参数paper,poster,notebook
plt.figure(figsize=(8,6))
sinplot()

paper 

 

线条粗细不同。 

 指定字体大小:

 

调色板 

  • 颜色很重要
  • color_palette()能传入任何Matplotlib所支持的颜色
  • color_palette()不写参数则默认颜色
  • set_palette()设置所有图的颜色

分类色板:

 

import seaborn as sns
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
current_palette=sns.color_palette()
sns.palplot(current_palette)
plt.show()

6个默认的颜色循环主题:deep,muted,pastel,bright,dark,colorblind 

 圆形画板

当你有六个以上的分类要区分时,最简单的方法就是在一个圆形的颜色空间中画出均匀间隔的颜色(这样的色调会保持亮度和饱和度不变),这是大多数的当他们需要使用当前默认颜色循环中设置的颜色更多时的默认方案。

最常用的方法是使用hls的颜色空间,这是RGB的一个简单转换。

import seaborn as sns
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
color_palette=sns.color_palette("hls",8)
sns.palplot(color_palette)
plt.show()

 

 

 

import seaborn as sns
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
data=np.random.normal(size=(20,8))+np.arange(8)/2
color_palette=sns.color_palette("hls",8)
sns.boxplot(data=data,palette=color_palette)
plt.show()

 

 

 hls_palette()函数来控制颜色的亮度和饱和

  • l-亮度 lightness
  • s-饱和 saturation

 

sns.palplot(sns.hls_palette(8,l=.7,s=.9))

 

sns.palplot(sns.color_palette("Paired",8))

 

 

使用xkcd颜色来命名颜色

xkcd包含了一套针对随机RGB色的命名,产生了954个可以随时通过xdcd-rgb字典中调用的命名颜色。

 

import seaborn as sns
import matplotlib.pyplot as plt
plt.plot([0,1],[0,1],sns.xkcd_rgb["pale red"],lw=3)
plt.plot([0,1],[0,2],sns.xkcd_rgb["medium green"],lw=3)
plt.plot([0,1],[0,3],sns.xkcd_rgb["denim blue"],lw=3)
plt.show()

连续色板

色彩随数据变换,比如数据越来越重要,则颜色越来越深。 

sns.palplot(sns.color_palette("Blues"))

如果想要翻转渐变,可以在面板名称中添加一个_r 

sns.palplot(sns.color_palette("Blues_r"))

 

 

 

 cubehelix_palette()调色板

色调线性变换

sns.palplot(sns.color_palette("cubehelix",8))

 

sns.palplot(sns.cubehelix_palette(8,start=.5,rot=-.75))

 

 

 light_palette()和dark_palette()调用定制连续调色板

 

sns.palplot(sns.light_palette("red"))

 

sns.palplot(sns.dark_palette("blue"))

 

#反转,由深到浅 

sns.palplot(sns.dark_palette("blue",reverse=True))

 

 

x,y=np.random.multivariate_normal([0,0],[[1,-.5],[-.5,1]],size=300).T
pal=sns.dark_palette("green",as_cmap=True)
sns.kdeplot(x,y,camp=pal)

 

 

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐亦亦乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值