seaborn快速入门(1)——主题

1. 主题设置

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

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)

sinplot()

效果:



使用seaborn进行主题设置。主题的样式包括:

  • darkgrid
  • whitegrid
  • dark
  • white
  • ticks
    例如,我们设置为darkgrid:
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

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)
sns.set_style("darkgrid")     # 也可以用sns.set() ,为seaborn默认主题
sinplot()

效果:



dark主题效果:



whitegrid主题效果:



white主题效果:



ticks主题效果:



2. 详细设置

2.1 移除轴线

样式white和ticks都可以通过去除上方和右方不必要的轴线来得到改善. 而这些是不可能在matplotlib里设置参数做到的,但是你可以调用seaborn的函数despine()来去除轴线:

sinplot()
sns.despine()

2.2 轴线偏移

sinplot()
sns.despine(offset=20);

2.3 减去轴线上数据外线段

sinplot()
sns.despine(offset=20,trim=True);

2.4 临时设置图表样式

尽管来回切换主题样式是很简单的,但是你也可以在with语句里用axes_style()函数来临时设置控制布局的参数.这也允许你用不同的主题来制作图表:

with sns.axes_style("dark"):
    plt.subplot(211)
    sinplot()
plt.subplot(212)
sns.set_style("ticks")
sinplot(-1)

2.5 重载seaborn样式的元素

如果你想要自定义seaborn的样式,你可以用词典(dictionary)将一系列控制参数赋值给axes_style()函数和set_style()函数的rc参数里. 注意你只能通过这种方式重载样式定义的部分.(但是,更高级的set()函数可以处理包含任意matplotlib参数的词典)

如果你想要知道都包含了哪些参数,你可以调用没有参数的函数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}

例如:

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

2.6 标签与图形粗细调整

有4种预设好的上下文(context),按相对大小排序分别是:paper, notebook, talk,和poster.缺省的规模是notebook。

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

sns.set_context("notebook")
sinplot()

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

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

在修改上下文时,你也可以单独修改字体大小。(更高级的set()里也可以这么做)

sns.set_context("notebook", font_scale=1.5, rc={"lines.linewidth": 2.5})
sinplot()

你可能感兴趣的:(seaborn快速入门(1)——主题)