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

昨天给大家分享了我博士期间搜集的《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');

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

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

以上。

获取方式:

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

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值