SCI论文配色-matplotlib分类柱状图绘制

腾讯课堂 | Python网络爬虫与文本分析python

01. 引言

今天在查看资料时,看见一篇SCI论文的配图十分抢眼,图表的总体绘制不是很难,但整个配色仍是瞬间让图表“高大上”起来,以下:


(这种配色真的适合发sci论文)web

在使用ggplot2进行这类图表颜色绘制时,直接调用ggsci包就能够进行颜色设计(Matplotlib在这点上还存在明显不足啊 )。但抱怨归抱怨,接下来仍是使用python-matplotlib 对上图进行仿制。

02. 基本绘制

python-matplotlib 绘制分类柱状图的步骤相对比较简单,即ax.bar()的灵活使用便可,下面为没有任何定制化绘制的默认绘制代码:
import numpy as npimport matplotlib.pyplot as plt
plt.rcParams['font.family'] = "Times New Roman"
#datalabels = ['L1', 'L2', 'L3', 'L4', 'L5']data_a = [20, 34, 30, 35, 27]data_b = [25, 32, 34, 20, 25]data_c = [12, 20, 24, 17, 16]
x = np.arange(len(labels))width = .25#plotsfig,ax = plt.subplots(figsize=(5,3),dpi=200)bar_a = ax.bar(x-width/2, data_a,width,label='category_A')bar_b = ax.bar(x+width/2, data_b, width,label='category_B')bar_c = ax.bar(x+width*3/2, data_c,width,label='category_C')ax.set_xticks(x+.1)ax.set_xticklabels(labels,size=10)ax.legend() text_font = {'size':'14','weight':'bold','color':'black'}ax.text(.03,.93,"(a)",transform = ax.transAxes,fontdict=text_font,zorder=4)ax.text(.87,-.08,'\nVisualization by DataCharm',transform = ax.transAxes, ha='center', va='center',fontsize = 5,color='black',fontweight='bold',family='Roboto Mono')plt.savefig(r'E:\Data_resourses\DataCharm 公众号\Python\学术图表绘制\bar_class_prior.png',width=5,height=3, dpi=900,bbox_inches='tight')plt.show()
结果以下:


能够看出,默认的matplotlib的配色真的是······· ,接下来,咱们经过定制化绘制使其看起来舒服同时也符合SCI期刊配色要求。

03. SCI配色设计

咱们使用 FastStone Capture 软件对所需颜色进行吸收,而后对刻度、轴脊梁、字体等进行设计,具体代码以下:
#构造数据labels = ['L1', 'L2', 'L3', 'L4', 'L5']data_a = [20, 34, 30, 35, 27]data_b = [25, 32, 34, 20, 25]data_c = [12, 20, 24, 17, 16]
x = np.arange(len(labels))width = .25
plt.rcParams['font.family'] = "Times New Roman"#plotsfig,ax = plt.subplots(figsize=(5,3),dpi=200)bar_a = ax.bar(x-width/2, data_a,width,label='category_A',color='#130074',ec='black',lw=.5)bar_b = ax.bar(x+width/2, data_b, width,label='category_B',color='#CB181B',ec='black',lw=.5)bar_c = ax.bar(x+width*3/2, data_c,width,label='category_C',color='white',ec='black',lw=.5)
#定制化设计ax.tick_params(axis='x',direction='in',bottom=False)ax.tick_params(axis='y',direction='out',labelsize=8,length=3)ax.set_xticks(x+1)ax.set_xticklabels(labels,size=10)ax.set_ylim(bottom=0,top=40)ax.set_yticks(np.arange(0, 50, step=5))
for spine in ['top','right']: ax.spines[spine].set_color('none') ax.legend(fontsize=7,frameon=False)
text_font = {'size':'14','weight':'bold','color':'black'}ax.text(.03,.93,"(a)",transform = ax.transAxes,fontdict=text_font,zorder=4)ax.text(.87,-.08,'\nVisualization by DataCharm',transform = ax.transAxes, ha='center', va='center',fontsize = 5,color='black',fontweight='bold',family='Roboto Mono')plt.savefig(r'E:\Data_resourses\DataCharm 公众号\Python\学术图表绘制\bar_class.png',width=5,height=3, dpi=900,bbox_inches='tight')plt.show()
结果以下:


是否是瞬间高大上了 ,确定会有小伙伴问了,我不知道SCI颜色具体怎么设置啊?不是有ggsci包和 FastStone Capture软件吗?谁让matplotlib在这方面尚未很好的颜色包呢 。接下来,咱们直接选择Science色系的前三个颜色代码直接填充咱们构造的数据,更改代码也是只单单的一行,以下:
bar_c = ax.bar(x+width*3/2, data_c,width,label='category_C',color='#008B45',ec='black',lw=.5)

此外,咱们还添加了网格线,感受还不错,效果以下:微信



04. 总结

本期的推文总体上很简单(不少小伙伴但愿推出些基础、实用的绘图教程 )主要仍是学术图表的绘制,这里使用了比较适合SCI论文的颜色搭配。


近期文章

   
Python网络爬虫与文本数据分析
rpy2库 | 在jupyter中调用R语言代码
tidytext | 耳目一新的R-style文本分析库
reticulate包 | 在Rmarkdown中调用Python代码
plydata库 | 数据操做管道操做符>>
plotnine: Python版的ggplot2做图库
七夕礼物 | 全网最火的钉子绕线图制做教程
读完本文你就了解什么是文本分析
文本分析在经管领域中的应用概述  
综述:文本分析在市场营销研究中的应用
plotnine: Python版的ggplot2做图库
小案例: Pandas的apply方法   
stylecloud:简洁易用的词云库  
用Python绘制近20年地方财政收入变迁史视频   
Wow~70G上市公司按期报告数据集
漂亮~pandas能够无缝衔接Bokeh  
YelpDaset: 酒店管理类数据集10+G  

    分享 ”和“ 在看 ”是更好的支持!

本文分享自微信公众号 - 大邓和他的Python(DaDengAndHisPython)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。markdown

相关文章
相关标签/搜索