seaborn样式风格设置
用seaborn绘图,比直接使用matplotlib绘图更加的美观。原因就是因为seaborn中已经将一些属性的样式进行了调整。我们可以直接使用,也可以修改他的样式。
一、自带的样式:
seaborn中自带了5种样式。分别是:
-
white:纯白色的。sns.set_style("white") axes = sns.scatterplot(x="total_bill",y="tip",data=tips)
-
whitegrid:带有网格的白色的。sns.set_style("whitegrid") axes = sns.scatterplot(x="total_bill",y="tip",data=tips)
-
dark:灰色的。sns.set_style("dark") axes = sns.scatterplot(x="total_bill",y="tip",data=tips)
-
darkgrid:带有网格的灰色的(网格线是白色的)。sns.set_style("darkgrid") axes = sns.scatterplot(x="total_bill",y="tip",data=tips)
-
ticks:白色的,并且在轴上带有刻度条的。sns.set_style("ticks") axes = sns.scatterplot(x="total_bill",y="tip",data=tips)
二、风格设置函数:
在seaborn中,可以通过三个函数来设置样式。分别是sns.set_style、sns.axes_style以及sns.set方法。以下对着三种方法进行讲解。
1. sns.axes_style:
sns.axes_style(style=None,rc=None)。
这个函数调用的时候如果不传递任何参数,那么将会返回可以设置的所有属性。有时候我们不知道什么属性可以设置,那么可以打印下这个函数的返回值:
sns.axes_style()
输入如下:
{'axes.facecolor': 'white',
'axes.edgecolor': 'black',
'axes.grid': False,
'axes.axisbelow': 'line',
'axes.labelcolor': 'black',
'figure.facecolor': (1, 1, 1, 0),
'grid.color': '#b0b0b0',
'grid.linestyle': '-',
'text.color': 'black',
'xtick.color': 'black',
'ytick.color': 'black',
'xtick.direction': 'out',
'ytick.direction': 'out',
'lines.solid_capstyle': 'projecting',
'patch.edgecolor': 'black',
'image.cmap': 'viridis',
'font.family': ['sans-serif'],
'font.sans-serif': ['DejaVu Sans',
'Bitstream Vera Sans',
'Computer Modern Sans Serif',
'Lucida Grande',
'Verdana',
'Geneva',
'Lucid',
'Arial',
'Helvetica',
'Avant Garde',
'sans-serif'],
'patch.force_edgecolor': False,
'xtick.bottom': True,
'xtick.top': False,
'ytick.left': True,
'ytick.right': False,
'axes.spines.left': True,
'axes.spines.bottom': True,
'axes.spines.right': True,
'axes.spines.top': True}
这个函数也可以用来设置样式,但是只能通过with语句调用。示例代码如下:
with sns.axes_style("dark",{"ytick.left":True}):
sns.scatterplot(x="total_bill",y="tip",data=tips)
2. sns.set_style():
sns.set_style(style=None,rc=None)。
这个函数跟sns.axes_style一样,也是用来设置绘图风格。但是这个函数的风格设置,不是临时的,而是一旦设置了,那么下面的所有绘图都是用这个风格。示例代码如下:
sns.set_style("darkgrid")
sns.scatterplot(x="total_bill",y="tip",data=tips)
3. sns.set:
sns.set(context='notebook', style='darkgrid', palette='deep', font='sans-serif', font_scale=1, color_codes=True, rc=None)。
set方法也是用来设置样式的,他的功能更加强大。除了style以外,还可以设置调色板,字体,字体大小,颜色等,也可以设置其他的matplotlib.rcParams可以接收的参数。示例代码如下:
sns.set(rc={"lines.linewidth":4})
fmri = sns.load_dataset("fmri")
sns.lineplot(x="timepoint",y="signal",data=fmri)
效果图如下:

