14天数据分析与机器学习实践之Day04(1)——可视化库Seaborn应用总结

14天数据分析与机器学习实践之Day04——可视化库Seaborn应用总结

%matplotlib inline直接输出图像
sinplot()构图

5种主题风格
darkgrid
whitegrid
dark
white
ticks

sns.boxplot构建盒图

sns.set_style("whitegrid")
data = np.random.normal(size=(20, 6)) + np.arange(6) / 2
sns.boxplot(data=data)

123456789

Seaborn简介

Seaborn是基于matplotlib的Python可视化库。它提供了一个高级界面来绘制有吸引力的统计图形。可以使得数据可视化更加的方便,美观。关于Seaborn的学习,推荐去官网,里边有详细的教程和示例。

Seaborn常用功能简介

直接使用Seaborn的美化功能
Seaborn直接提供了多种对matplotlib绘制的图形的美化功能,可以直接使用。
示例
使用matplotlib绘制图形,

#定义一个简单的绘图函数
def sinplot(flip=1):
    x = np.linspace(0, 14, 100)
    for i in range(1, 7):
        plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)

在这里插入图片描述
使用Seaborn提供的默认主题美化图形绘制

#只需要在绘制图形之前调用Seaborn的set()函数就可以直接使用其设定好的默认主题进行美化
sns.set()
sinplot()

在这里插入图片描述
Seaborn提供了多种风格的主题以供使用,可以通过sns.set_style()来直接使用。

提供的直接使用的主题:
darkgrid,whitegrid,dark,white,和ticks
默认为darkgrid

#使用Seaborn提供的主题绘制
sns.set_style("ticks")
sinplot()
sns.set_style("whitegrid")
data = np.random.normal(size=(20, 6)) + np.arange(6) / 2
sns.boxplot(data=data)

在这里插入图片描述

sns.set_style("dark")
sinplot()

在这里插入图片描述
我们可以使用sns.despine()函数来去除图片顶部和右侧的坐标轴线,使得图片更加美观

sns.set_style('ticks')
sinplot()
sns.despine()

在这里插入图片描述
offset=10设置图片距离轴线的距离

#f, ax = plt.subplots()
sns.violinplot(data)
sns.despine(offset=10)

当然了,除了默认的提供的这些主题,我们也可以自己定义一些绘图的风格。通过向axes_style()和set_style()传递参数,可以定义自己的绘图主题。

#通过传入字典的方式来定制自己的绘图风格
sns.set_style("darkgrid", {"axes.facecolor": ".9"})
sinplot()

我们可以通过直接调用set_style()函数来查看全部可以使用的参数。

set_style()可用参数

{'axes.axisbelow': True,
 'axes.edgecolor': '.15',
 'axes.facecolor': 'white',
 'axes.grid': False,
 'axes.labelcolor': '.15',
 'axes.linewidth': 1.25,
 'figure.facecolor': 'white',
 'font.family': ['sans-serif'],
 'font.sans-serif': ['Arial',
  'DejaVu Sans',
  'Liberation Sans',
  'Bitstream Vera Sans',
  'sans-serif'],
 'grid.color': '.8',
 'grid.linestyle': '-',
 'image.cmap': 'rocket',
 'legend.frameon': False,
 'legend.numpoints': 1,
 'legend.scatterpoints': 1,
 'lines.solid_capstyle': 'round',
 'text.color': '.15',
 'xtick.color': '.15',
 'xtick.direction': 'out',
 'xtick.major.size': 6.0,
 'xtick.minor.size': 3.0,
 'ytick.color': '.15',
 'ytick.direction': 'out',
 'ytick.major.size': 6.0,
 'ytick.minor.size': 3.0}

我们还可以通过修改context参数来缩放图片中的元素。

Seaborn内置了多种context风格 : paper, notebook, talk, and poster
默认使用的是notebook

sns.set_context("poster")
sinplot()
sns.set_context("talk")
plt.figure(figsize=(8, 6))
sinplot()

在这里插入图片描述

使用Seaborn的调色板

Seaborn提供了可以便于使用的调色板,可以方便的作用于数据的可视化。
示例
定性(或分类)调色板最适合用于区分不具有固有排序的离散数据块。
调色板

颜色很重要

  • color_palette()能传入任何Matplotlib所支持的颜色
  • color_palette()不写参数则默认颜色
  • set_palette()设置所有图的颜色
    分类色板
current_palette = sns.color_palette()
sns.palplot(current_palette)

在这里插入图片描述6个默认的颜色循环主题: deep, muted, pastel, bright, dark, colorblind

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

最常用的方法是使用hls的颜色空间,这是RGB值的一个简单转换。
我们也可以根据需要来定制一个循环的色板

#使用hls的颜色空间,分割成8个颜色
sns.palplot(sns.color_palette("hls", 8))

在这里插入图片描述
bookplot传入8种颜色

data = np.random.normal(size=(20, 8)) + np.arange(8) / 2
sns.boxplot(data=data,palette=sns.color_palette("hls", 8))

在这里插入图片描述
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字典中调用的命名颜色。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值