seaborn 绘图工具

关于

kaggle 上很多人用这个工具做图,图片还不错,比ggplot貌似要更加符合matlab风格。
网站地址 https://stanford.edu/~mwaskom/software/seaborn

配置

主题风格

默认风格已经不错,如果要配置风格可以使用包的axes_style()set_style()命令。
五中默认主题是darkgrid, whitegrid, dark, white, ticks,默认是darkgrid
关键词汇总有grid代表有网格,没有的代表没有网格。

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

移除上边和右边的边框

对于white, ticks主题,通常可以移除上边和右边的边框,通过sns.despine()命令就可以了。

设置局部式样

使用 sns.axes_style() 函数和 with 环境。

with sns.axes_style("darkgrid"):
    plt.subplot(211)
    sinplot()
plt.subplot(212)
sinplot(-1)

重写其他配置属性:

sns.set_style("darkgrid", {"axes.facecolor": ".9"})

所有的配置属性可以通过.axes_style(),传入空参数得到:

sns.axes_style()

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

### 设置绘图上下文
内置四中上下文:`paper, notebook, talk, poster`,默认是`notebook`
上下文可以通过`sns.set_context('paper')`这种形式进行设置。


`set_context`函数还可以指定两个参数,`font_scale``rc`参数,用来指定字体大小和其他运行参数。其他运行参数?
`sns.set_context("notebook", font_scale=1.5, rc={"lines.linewidth": 2.5})`

函数`sns.set()`将所有配置设置为默认情况(传入空参数),或者更多其他参数,包括`rc`参数。

## Color palettes
`sns.color_palette()`获取和设置color palette
使用hls循环颜色系统,可以指定第一个参数为`hls`,或者使用`hls_palette()`函数。
绘制颜色画板的函数是 `sns.palplot(pal)`
一种更亮的版本是 husl 系统。

### Color Brewer
类似于color map  好多颜色,先不看了。看不下去了。

### 使用命名好的颜色
xkcd 颜色命名有954中颜色,可以通过字典 `sns.xkcd_rgb` 查看。 使用方式也是通过这个字典。
利用这个字典,可以将颜色名字列表转换为颜色画板。

```python
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);

colors = ["windows blue", "amber", "greyish", "faded green", "dusty purple"]
sns.palplot(sns.xkcd_palette(colors))

交互式颜色选择工具 http://www.luminoso.com/colors/

线性渐变颜色画板

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

更多画板工具后面再详细地添加吧。

可视化数据集

绘制分布图 distplot

x = np.random.normal(size=100)
sns.distplot(x);

两个变量分布图 jointplot

线性回归图

category 变量

Grid