学习可视化不能仅仅满足于会作图,我们需要能达到可作出定制化图形的水平。Seaborn库虽然是在Matplotlib库基础上进行的更高级封装,使得作图更加漂亮、容易,但即使是经过了封装,我们依然可以进行一些定制化设置。
本文在介绍该库具体的作图函数之前会介绍该库作图的一些图形设置,让读者可以更好地掌握该库。
01绘图风格设置
首先我们可以对图形的总体风格进行设置。
sns.set(style="darkgrid",context="notebook", palette="deep", font="sans-serif", font_scale=1, color_codes=True, rc=None)#没有参数即为重置#可采用如下函数查看每种风格的具体样式import numpy as npimport matplotlib.pyplot as pltimport seaborn as snsimport pandas as pd%matplotlib inlinex=np.linspace(-10,10,100)y=np.sin(x)z=np.arange(100)se=["darkgrid","whitegrid","dark","white","ticks"]for i in range(len(se)): plt.figure(figsize=(6,4)) sns.set(style=se[i]) sns.lineplot(x=x,y=y,legend="brief",label="xx") plt.title(se[i]) plt.show()
如果这些内置的风格不满足需求的话,我们就可以对图形的组成部分进行设置。我们可以通过如下函数知道有哪些可供设置的风格参数。
sns.axes_style() #返回绘图风格的一系列字典格式参数{'axes.facecolor': '#EAEAF2', 'axes.edgecolor': 'white', 'axes.grid': True, 'axes.axisbelow': True, 'axes.labelcolor': '.15', 'figure.facecolor': 'white', 'grid.color': 'white', 'grid.linestyle': '-', 'text.color': '.15', 'xtick.color': '.15', 'ytick.color': '.15', 'xtick.direction': 'out', 'ytick.direction': 'out', 'lines.solid_capstyle': 'round', 'patch.edgecolor': 'w', 'image.cmap': 'rocket', 'font.family': ['sans-serif'], 'font.sans-serif': ['Arial', 'DejaVu Sans', 'Liberation Sans', 'Bitstream Vera Sans', 'sans-serif'], 'patch.force_edgecolor': True, 'xtick.bottom': False, 'xtick.top': False, 'ytick.left': False, 'ytick.right': False, 'axes.spines.left': True, 'axes.spines.bottom': True, 'axes.spines.right': True, 'axes.spines.top': True}
参数非常多,但根据名称我们都可以大致知道是什么意思,通过如下函数可进行调整。
sns.set_style(style="whitegrid",rc={"axes.grid":False}) #可以设置5种风格的图表背景:darkgrid, whitegrid, dark, white, ticks;#rc为字典格式参数,可通过字典格式控制绘图风格
02绘图元素比例设置
这部分是属于对组成元素的大小和长宽度进行设置。如下函数可输出默认的字典参数表。
sns.plotting_context() #返回元素宽度、大小等格式的字典参数{'font.size': 12.0, 'axes.labelsize': 12.0, 'axes.titlesize': 12.0, 'xtick.labelsize': 11.0, 'ytick.labelsize': 11.0, 'legend.fontsize': 11.0, 'axes.linewidth': 1.25, 'grid.linewidth': 1.0, 'lines.linewidth': 1.5, 'lines.markersize': 6.0, 'patch.linewidth': 1.0, 'xtick.major.width': 1.25, 'ytick.major.width': 1.25, 'xtick.minor.width': 1.0, 'ytick.minor.width': 1.0, 'xtick.major.size': 6.0, 'ytick.major.size': 6.0, 'xtick.minor.size': 4.0, 'ytick.minor.size': 4.0}
再通过如下设置函数可对元素比例进行具体设置。
sns.set_context(context="talk",rc={"axes.linewidth":2.5})#context有notebook,paper,talk,poster4种选项,notebook为默认项
03颜色风格设置
颜色设置的方法非常多,通过如下方法可以查看每种主题的颜色。
sns.palplot(sns.color_palette(palette="muted"))#主题有deep,muted,pastel,bright,dark,colorblind
sns.set_palette(palette="dark")#默认是deep,可调整色系。
04结语
当我们需要的所有图形都是同一种风格时,在绘图之前就提前设置好就非常有帮助。而如果不同的图需要具有不同风格时,我们就可以在具体绘图时在不同的绘图函数中具体设置。
但我们平时的需求一般都是前者,所以掌握整体的绘图风格设置还是很有必要的。