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)
效果图如下: