昨天给大家分享了我博士期间搜集的《Nature》高清论文插图集(涵盖了超过1200张各式各样的论文插图),意外的反响还不错。

于是决定借此机会,以《Nature》高清论文插图集和《Matlab论文插图绘制模板系列》为基础,开启一个全新的系列,暂时称之为:

Nature论文插图复刻系列

顾名思义,就是我会从《Nature》高清论文插图集中挑选一些好看的插图结合手头的各种软件(比如Matlab、PPT等)、插件(比如ColorCopy、OneKey等),尽量实现1:1复刻

本期我们来复刻《Nature》高清论文插图集Part2中的第456号插图(以下简称456)的左下的多组柱状图

先来看一下复刻效果

大家还想看我复刻哪张图,可以告诉我号码

特别提示:Nature论文插图复刻系列,旨在降低科研绘图的门槛,让大家不再觉得“顶级期刊里的论文插图对自己来说遥不可及”。如果觉得有用,不妨分享给你身边的人


1 要素分析

之前有分享过Matlab柱状图的绘制模板

与之相比,456的三个柱子之间有一定的间隔

此外,456的文字注释为横排数字Legend图例为小正方形Y坐标轴的刻度标签保留了两位小数

这些都是需要注意的点。

2 复刻工具

  • Matlab R2020a

  • Matlab科研绘图插件-ColorCopy配色方案提取工具

3 数据准备及配色方案提取

此部分主要是提取456中的数据以及配色方案,以用于绘图。

由于原图作者对每根柱子的值进行了注释,所以此处直接手动构建数据矩阵。

%% 数据准备x = [1 3];    dataset = [15 24.37 31.2;           11 23.97 36.4];

然后,利用ColorCopy工具提取配色方案

%% 颜色提取C = ColorCopy;closeC1 = C(1,:);C2 = C(2,:);C3 = C(3,:);

4 绘图

首先,利用‘bar’命令绘制初始的多组柱状图

GO = bar(x,dataset,0.8,'EdgeColor','k');hYLabel = ylabel('100 seed weight(100SW,g)');

然后,赋上之前提取的配色方案,并对每根柱子添加文字注释

% 赋色GO(1).FaceColor = C1;GO(2).FaceColor = C2;GO(3).FaceColor = C3;% 文字注释for ii = 1    text(ii-0.45,dataset(ii,1)+2,num2str(dataset(ii,1),'%.2f'),...         'ROtation',0,'color','k','FontSize',8,'FontName',  'Helvetica', 'HorizontalAlignment','center');    text(ii,dataset(ii,2)+2,num2str(dataset(ii,2)),...         'ROtation',0,'color','k','FontSize',8,'FontName',  'Helvetica', 'HorizontalAlignment','center');         text(ii+0.45,dataset(ii,3)+2,num2str(dataset(ii,3)),...         'ROtation',0,'color','k','FontSize',8,'FontName',  'Helvetica', 'HorizontalAlignment','center');  endfor ii = 3    text(ii-0.45,dataset(ii-1,1)+2,num2str(dataset(ii-1,1)),...         'ROtation',0,'color','k','FontSize',8,'FontName',  'Helvetica', 'HorizontalAlignment','center');    text(ii,dataset(ii-1,2)+2,num2str(dataset(ii-1,2)),...         'ROtation',0,'color','k','FontSize',8,'FontName',  'Helvetica', 'HorizontalAlignment','center');         text(ii+0.45,dataset(ii-1,3)+2,num2str(dataset(ii-1,3)),...         'ROtation',0,'color','k','FontSize',8,'FontName',  'Helvetica', 'HorizontalAlignment','center');  end

再然后,对照原图,对坐标区细节进行进一步的调整:

% 坐标轴参数调整set(gca, 'Box', 'off', ...                                                  'XGrid', 'off', 'YGrid', 'off', ...                                'TickDir', 'out', 'TickLength', [.005 .005], ...                    'XMinorTick', 'off', 'YMinorTick', 'off', ...                      'XColor', [0 0 0],  'YColor', [0 0 0 ],...                    'YTick', 0:5:40,...                                               'Ylim' , [0 40], ...                                            'Xlim' , [0 4], ...         'Xtick', [0:4], ...          'Xticklabel',{' ', 'Pantancheru (2014-15)',' ','Pantancheru (2015-16)',' ' },...         'Yticklabel',{num2str([0:5:40]','%.2f')})% legendhLegend = legend([GO(1),GO(2),GO(3)], ...                 'RP1 (2 individuals)', 'RP2 (15 individuals)', 'RP3 (5 individuals)', ...                 'Location', 'northoutside','Orientation','horizontal');hLegend.ItemTokenSize = [5 5];legend('boxoff');% 字体字号set(gca, 'FontName', 'Arial', 'FontSize', 10)set(hLegend, 'FontName',  'Arial', 'FontSize', 10)set(hYLabel, 'FontName',  'Arial', 'FontSize', 11)set(gcf,'Color',[1 1 1])

最后,按照所需分辨率输出图片:

figW = figureWidth;figH = figureHeight;set(figureHandle,'PaperUnits',figureUnits);set(figureHandle,'PaperPosition',[0 0 figWfigH]);fileout = 'test';print(figureHandle,[fileout,'.png'],'-r300','-dpng');

可以说还原度还是比较高的。

大家还想看我复刻哪张图,可以告诉我号码

以上。

获取方式:

所用工具及完整代码获取方式

Nature论文插图复刻第1期—多组柱状图(Part2-456)相关推荐

  1. Matlab论文插图绘制模板第77期—对数刻度横向柱状图

    在之前的文章中,分享了Matlab对数刻度柱状图的绘制模板: 进一步,再来看一下对数刻度横向柱状图的绘制模板. 先来看一下成品效果: 特别提示:Matlab论文插图绘制模板系列,旨在降低大家使用Mat ...

  2. Matlab论文插图绘制模板第62期—水平三维柱状图(Bar3h)

    在之前的文章中,分享了Matlab三维柱状图的绘制模板: 这次再来分享一下水平三维柱状图的绘制模板. 先来看一下成品效果: 特别提示:Matlab论文插图绘制模板系列,旨在降低大家使用Matlab进行 ...

  3. Matlab论文插图绘制模板第61期—横向多组堆叠图

    之前有分享过一个Matlab多组堆叠图的绘制模板: 最近有朋友私信我,想让我出一个横向的多组堆叠图. 所以,这次就再出一期横向多组堆叠图的教程. 先来看一下成品效果: 特别提示:Matlab论文插图绘 ...

  4. Matlab论文插图绘制模板第24期—柱状图(多组堆叠)

    在之前的文章中,分享了一个Matlab柱状图的绘制模板: 以及一些特殊形式的柱状图: 昨天有朋友问我,类似下面这种多组堆叠图应该怎么画. 我告诉她,之前有类似的教程,稍微举一反三一下,不难画. 但回头 ...

  5. Matlab论文插图绘制模板第28期—柱状图(带误差棒errorbar)

    在之前的文章中,分享了Matlab柱状图的绘制模板: 折线图的绘制模板: 散点图的绘制模板: 在实际应用时,很多时候需要在以上内容基础上添加误差棒. 所以,这次来分享一下带误差棒的柱状图的绘制模板,算 ...

  6. Matlab论文插图绘制模板第69期—带误差棒的折线图(Errorbar)

    在之前的文章中,分享了一系列Matlab折线图的绘制模板: 这一次,再来分享一种特殊的折线图:带误差棒的折线图. 先来看一下成品效果: 特别提示:Matlab论文插图绘制模板系列,旨在降低大家使用Ma ...

  7. Matlab论文插图绘制模板第50期—分簇散点图(Swarmchart)

    在之前的文章中,分享了很多Matlab散点图的绘制模板: 这一次,再来分享一种特殊的散点图:分簇散点图. 先来看一下成品效果: 特别提示:Matlab论文插图绘制模板系列,旨在降低大家使用Matlab ...

  8. Matlab论文插图绘制模板第78期—进阶词云图

    词云图一般由词汇.颜色.大小三种元素构成,其中颜色主要用于区分不同的词汇,而字体的大小可以直观地展示词汇数值的大小. 在之前的文章中,分享过一个简单的Matlab词云图绘制模板. 那么,我们进一步看一 ...

  9. Matlab论文插图绘制模板第33期—等高线填充图(contourf)

    在上一期文章中,分享了Matlab等高线图的绘制模板: 进一步,再来分享一下等高线填充图的绘制模板. 先来看一下成品效果: 特别提示:Matlab论文插图绘制模板系列,旨在降低大家使用Matlab进行 ...

  10. Matlab论文插图绘制模板第39期—阶梯图(Stairs)

    在之前的文章中,分享了Matlab折线图的绘制模板: 三维折线图的绘制模板: 以及一些特殊的线图: 这次再来分享一种线图:阶梯图. 先来看一下成品效果: 特别提示:Matlab论文插图绘制模板系列,旨 ...

最新文章

  1. Linux内核源码中使用宏定义的若干技巧
  2. 三级计算机系统是什么情况,三级PC技术: 计算机的组成和分类
  3. python polar contour_13.极坐标系(Polar coordinate system)
  4. vuex commit 模块_分享一个Vuex的使用的新姿势
  5. 阿里云如何打破Oracle迁移上云的壁垒
  6. 硬盘安装工具cgi_PE系统(U盘安装)
  7. springboot的测试类
  8. 唐太宗李世民14个儿子的可悲结局[高清组图]
  9. python读有中文的文件_在python中pandas读文件,有中文字符的方法
  10. 山东大学项目实训(三十二)—— 科室管理
  11. python selenium某里国际站网站注册登录验证问题
  12. 茶饮连锁门店数字化转型
  13. Lena原图 512*512
  14. C语言>>百钱百鸡问题。鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,翁、母、雏各几何 ?
  15. 年会弹幕文字_微信弹幕_微信墙/弹幕抽奖/晚会年会必备互动
  16. Alpha GO核心原理
  17. 面向6G网络自动化的知识驱动可解释人工智能(XAI);基于汽车事件数据的脉冲神经网络目标检测;对称分类方案下波导阵列中的BIC;PreMovNet:基于运动前脑电的抓取和提举手运动学估计
  18. 【操作系统】Oranges学习笔记(六) 第七章 输入/输出系统
  19. 转载-ChatGPT在信息安全领域的应用前景
  20. IOS手机端浏览器内核

热门文章

  1. 硬件设计14---什么是预加重与去加重技术?
  2. adams齿轮齿条怎么定义接触,直齿轮adams接触(碰撞)仿真分析
  3. shell 脚本中常用的列表
  4. python题目练习001--A+B Problem
  5. html 表格 分页源码,JS代码实现table数据分页效果
  6. 【论文撰写和程序员常用软件】
  7. Java定时任务与分布式定时任务
  8. 使用AJAX中的get请求中文乱码的问题
  9. 易语言大漠插件制作脚本教程
  10. java实现ssh_使用纯Java实现一个WebSSH项目