很久之前对seaborn有过一些涉及但是没有深入探究,这次有趁着有数据可视化的需求,就好好学一学
Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn就能做出很具有吸引力的图,为数据分析提供了很大的便利性。但是应该把Seaborn视为matplotlib的补充,而不是替代物。
这次就从最基本的图标风格和调色板开始,学习seaborn。
图表风格(style)设置
sns.set() 设置样式参数
seaborn.set(context ='notebook',style ='darkgrid',palette ='deep',font ='sans-serif',font_scale = 1,color_codes = True,rc = None)
set_style() 设置图标风格
seaborn.set_style(style = None,rc = None )
sns.despine() 设置坐标轴
seaborn.despine(fig=None, ax=None, top=True, right=True, left=False, bottom=False, offset=None, trim=False)
sns.axes_style() 设置子图风格
设置显示比例尺度 set_context()
seaborn.set_context(context = None,font_scale = 1,rc = None )
图标颜色设置 color_palette()
sns.color_palette(palette=None, n_colors=None, desat=None)
我们选择颜色常常依据数据特征来选择,所以下面就从
:彼此间差异较大
:颜色按照顺序渐变
:中间颜色浅,两端颜色深
三个调色板来讲解函数
分类调色板
当你不用区分离散数据的顺序时,建议使用分类调色板
圆形调色系统
当需要6中以上的颜色时,可以在圆形颜色空间中按均匀间隔画出颜色。
最常见的是使用颜色空间。
HLS色调空间:hls_palette([n_colors, h, l, s])
HUSL色调空间:husl_palette([n_colors, h, l, s])
在这里插入图片描述使用分类Color Brewer调色板
另一个分类色板来源于Color Brewer(),它也同样存在于matplotlib colormaps中,但是并没有得到很好的处理。在Seaborn中,当你调用Color Brewer分类色板时,你总能得到离散的颜色,但是这意味着它们在某一点开始了循环。
Color Brewer网站的一个很好的功能是它提供了一些关于哪些调色板是色盲安全的指导
使用xkcd颜色测量中的命名颜色
xkcd包含了一系列命名RGB颜色。共954种颜色,您现在可以使用xkcd_rgb字典在seaborn中引用它们:
顺序调色板
当数据范围从相对较低或不感兴趣的值到相对较高或有趣的值时,可以使用连续(顺序)调色板,在kdeplot()和heatmap()函数中常常会用到。
具有大色调偏移的色彩图往往会引入数据中不存在的不连续性,并且我们的视觉系统无法自然地将彩虹映射到诸如“高”或“低”的定量区别。结果是这些可视化最终更像是一个谜题,它们模糊了数据中的模式而不是揭示它们
所以对于顺序数据,最好使用色调最多相对微妙偏移的调色板,伴随着亮度和饱和度的大幅度变化。这种方法自然会吸引人们关注数据的相对重要部分
顺序 cubehelix 调色板
cubehelix调色板系统既能亮度线性变化同时也能色调变化的线性色板。这意味着当转换为黑白(用于打印)或由色盲个人查看时,色彩映射中的信息将被保留。
seaborn.cubehelix_palette(n_colors = 6,start = 0,rot = 0.4,gamma = 1.0,hue = 0.8,light = 0.85,dark = 0.15,reverse = False,as_cmap = False )
自定义顺序调色板
对于自定义顺序调色板的简单界面,您可以使用或使用,都是由单一的颜色并生成从浅色或深色去饱和值到该颜色的渐变调色板。这些函数还伴随着启动交互式小部件以创建这些调色板的功能
seaborn.light_palette(color,n_colors = 6,reverse = False,as_cmap = False,input ='rgb' )
seaborn.dark_palette(color,n_colors = 6,reverse = False,as_cmap = False,input ='rgb' )
发散的调色板
第三类调色板称为“发散”。这些用于大低值和高值都很有趣的数据。数据中通常还有明确定义的中点。例如,如果要绘制某个基线时间点的温度变化,最好使用偏差色图来显示相对减少的区域和相对增加的区域。
同样重要的是要强调使用红色和绿色应该避免,因为大量潜在的观众将无法区分它们
seaborn.diverging_palette(h_neg, h_pos, s=75, l=50, sep=10, n=6, center='light', as_cmap=False)
选择调色板 choose_colorbrewer_palette()
您可以使用该函数来播放各种颜色选项,如果希望返回值是可以传递给seaborn或matplotlib函数的colormap对象,则可以将as_cmap参数设置为True
seaborn.choose_colorbrewer_palette(data_type, as_cmap=False)
通过调节按钮来寻找调色板
设置默认的调色板
类似于color_palette()。接受相同的参数,但它会更改默认的matplotlib参数,以便将调色板应用于所有绘图。
下一篇文章是关于如何用seaborn绘制分布数据的图像。记得关注我哦~
领取专属 10元无门槛券
私享最新 技术干货