前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >seaborn绘图风格的设置

seaborn绘图风格的设置

作者头像
生信修炼手册
发布2020-11-02 10:45:17
1.1K0
发布2020-11-02 10:45:17
举报
文章被收录于专栏:生信修炼手册

一个好看的图表, 图表元素整体样式的协调共存会让人感觉赏心悦目,包括颜色设置,文字大小,边框粗细等各种样式。在seaborn中,可以通过不同的函数来修改图表的样式

1. context

主要是影响绘图元素的样式,比如文字和点的大小,线条宽度等,但是不会改变整体的绘图风格。通过plotting_context函数,可以看到context所影响的具体元素

代码语言:javascript
复制
>>> sns.plotting_context()
{'font.size': 24.0, 'axes.labelsize': 24.0, 'axes.titlesize': 24.0, 'xtick.labelsize': 22.0, 'ytick.labelsize': 22.0, 'legend.fontsize': 22.0, 'axes.linewidth': 2.5, 'grid.linewidth': 2.0, 'lines.linewidth': 3.0, 'lines.markersize': 12.0, 'patch.linewidth': 2.0, 'xtick.major.width': 2.5, 'ytick.major.width': 2.5, 'xtick.minor.width': 2.0, 'ytick.minor.width': 2.0, 'xtick.major.size': 12.0, 'ytick.major.size': 12.0, 'xtick.minor.size': 8.0, 'ytick.minor.size': 8.0, 'legend.title_fontsize': 24.0}

可以看到,主要是fontsize, linewidth, markersize这3种属性。在seaborn中,内置了以下4种context

1. notebook

2. paper

3. talk

4. poster

通过set_context函数可以设置对应的context, 用法如下

代码语言:javascript
复制
>>> sns.set_context('notebook')

不设置context的情况下,图表样式如下

notebook对应的图表样式如下

paper对应的图表样式如下

talk对应的图表样式如下

poster对应的图表样式如下

2. style

这里的style和matplotlib中的style相同,涵盖了更多图形元素的样式。seaborn中内置的style有以下几种

1. darkgrid

2. whitegrid

3. dark

4. white

5. ticks

通过axes_style函数可以查看style对应的元素属性,用法如下

代码语言:javascript
复制
>>> sns. axes_style("white")
{'figure.facecolor': 'white', 'axes.labelcolor': '.15', 'xtick.direction': 'out', 'ytick.direction': 'out', 'xtick.color': '.15', 'ytick.color': '.15', 'axes.axisbelow': True, 'grid.linestyle': '-', 'text.color': '.15', 'font.family': ['sans-serif'], 'font.sans-serif': ['Arial', 'DejaVu Sans', 'Liberation Sans', 'Bitstream Vera Sans', 'sans-serif'], 'lines.solid_capstyle': 'round', 'patch.edgecolor': 'w', 'patch.force_edgecolor': True, 'image.cmap': 'rocket', 'xtick.top': False, 'ytick.right': False, 'axes.grid': False, 'axes.facecolor': 'white', 'axes.edgecolor': '.15', 'grid.color': '.8', 'axes.spines.left': True, 'axes.spines.bottom': True, 'axes.spines.right': True, 'axes.spines.top': True, 'xtick.bottom': False, 'ytick.left': False}

也支持临时设置对应的style值,用法如下

代码语言:javascript
复制
>>> with sns.axes_style('white'):
...     sns.scatterplot(data=df, x='total_bill', y='tip')
...
<matplotlib.axes._subplots.AxesSubplot object at 0x0F424AF0>
>>> plt.show()

darkgrid对应的图表样式如下

whitegrid对应的图表样式如下

white对应的图表样式如下

dark对应的图表样式如下

ticks对应的图表样式如下

如果你需要修改style属性中的部分值,可以通过set_style函数来实现,用法如下

代码语言:javascript
复制
>>> sns.set_style('white', rc={'figure.facecolor':'black'})

3. theme

theme用于一次性设置context, style, palette等属性,具体的,有以下两种函数

代码语言:javascript
复制
# set_theme
>>> sns.set_theme(context='notebook', style='darkgrid', palette='deep', font='sans-serif')

# set
>>> sns.set(context='notebook', style='darkgrid', palette='deep', font='sans-serif')

set是set_theme的别名,通过context, style可以快速的确定绘图风格,当然绘图风格中还有非常重要的一个组成部分,颜色梯度palette, 这一块的内容很多,在后面的文章中再详细介绍。

·end·

—如果喜欢,快分享给你的朋友们吧—

原创不易,欢迎收藏,点赞,转发!生信知识浩瀚如海,在生信学习的道路上,让我们一起并肩作战!

本公众号深耕耘生信领域多年,具有丰富的数据分析经验,致力于提供真正有价值的数据分析服务,擅长个性化分析,欢迎有需要的老师和同学前来咨询。

更多精彩

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信修炼手册 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档