赞
踩
柱状图是SCI论文中较常见的一种图示类型,本期通过Matlab绘制出包含误差与显著性的进阶柱状图,今天分享如何从0到1实现柱状图的绘制!
论文配色是最为关键的因素,配色是一篇论文的颜值担当,好的配色给审稿人带来好的第一印象,好的配色事半功倍。
数据主要来自于大家实验处理后的数据,该图所需数据主要分为三部分:散点数据、误差棒数据、柱状图数据,最终的成图也是将这三部分数据有机融合在一张图示中。
Matlab有着强大的数据处理与绘图功能,主要离不开丰富的函数库,该图主要采用了三种函数:bar(柱状图)、scatter(散点图)、errorbar(误差)。下面让我们一起开始学习吧。
颜色提取的方法主要是从PPT中进行提取,首先选择一张喜欢的SCI图片,下图为搜索到的一张图片,以该图片为例进行颜色提取。
步骤1.1—网上搜索自己想要的图片或者已有的SCI论文中好看的图片,以下图为例。
步骤1.2—复制图片到PPT中,插入形状,此处选择圆形-点击圆形找到形状填充-取色器-单击图片中喜欢的颜色位置-此时形状填充颜色改变-完成取色-记录配色RGB值。
步骤1.3—保存配色RGB值到Matlab中,此处需要注意的是,在Matlab中,需要将RGB值除以255,位于0-1之间,下图为本次绘图中用到的配色。
以下就是保存到Matlab中的5种颜色数据啦
- mycolor = [0,0.501960784313726,1;...
- 1,1,1;....
- 0.00392156862745098,0.00392156862745098,0.00392156862745098;...
- 0.745098039215686,0.847058823529412,1;...
- 1,0.949019607843137,0.741176470588235];
以下数据为自己复现SCI拟定的数据,大家可以根据自己的数据进行修改。
- %% 自定义柱状图数据
- X = [0.5 1 1.5;2.5 3 3.5]; % 1 2代表有两大组柱状图
- Y = [1.8,1.5,1;2.3,2.5,2.2]; %每组有三个数
- %% 自定义散点图数据
- scatter_X = [0.4,0.5,0.6, 0.9,1,1.1, 1.43,1.5,1.58,...
- 2.5,2.5,2.5, 2.9,3,3.1, 3.4,3.5,3.6];
- scatter_Y = [1.83,1.75,1.82, 1.42,1.60,1.44, 0.89,1.17,0.93,...
- 2.13,2.3,2.47, 2.37,2.68,2.45, 2.3,2.01,2.3];
- %% 自定义误差棒的值 相对于Y上下数值
- Y_low = [0,0.07,0.08;0.1,0.1,0.1];
- Y_high =[0,0.07,0.08;0.1,0.1,0.1];
使用bar函数绘制柱状图、errorbar绘制误差线、scatter绘制散点;'FaceColor'用来改变柱状图内部颜色;'EdgeColor'用来定义边线颜色;'Linewidth'改变线宽。代码如下:
- %% 开始绘图
- % 设置背景为白色
- figure('color',[1 1 1]);
- % bar(X,Y,width) 宽度为柱状图宽度0.7,参数依次为颜色、边缘颜色与线宽
- for i = 1:2
- b =bar(X(i,:),Y(i,:),0.7,'stacked','FaceColor',bar_color(i,:),'EdgeColor',...
- scatter_color,'Linewidth',1.5);
- hold on;
- % errorbar函数 绘制误差棒
- %errorbar(X,Y,Low,High);参数以柱状图为基础、上下限高度、线宽、误差棒的长短
- errorbar(X(i,:),Y(i,:),Y_low(i,:),Y_high(i,:),...
- 'LineStyle','none',...
- 'Color',scatter_color,...
- 'Linewidth',1.5,'Capsize',12);
- end
- %% 绘制散点图
- % 绘制实心散点
- % scatter(X,Y) 参数:点的大小、填充颜色
- for i = 1:length(scatter_X)
- scatter(scatter_X(i),scatter_Y(i),35,'filled','MarkerFaceColo',scatter_color);
- end
- hold on;

此时距离出图接近了一步;接着用plot与text函数绘制横线与显著性等要素。
- %% 绘制直线 函数——plot:绘制直线 text:添加文本
- plot([0.5,1.5],[2.1,2.1],'Color',scatter_color,'Linewidth',1.5);
- text(0.51,2.3,'p = 0.0078','FontSize',15,'Fontname','微软雅黑');
- hold on;
- plot([0.5,2.5],[2.8,2.8],'Color',scatter_color,'Linewidth',1.5);
- text(1.0,3,'p = 0.0315','FontSize',15,'Fontname','微软雅黑');
- hold on;
- plot([1,3],[3.28,3.28],'Color',scatter_color,'Linewidth',1.5);
- text(1.6,3.5,'p = 0.0044','FontSize',15,'Fontname','微软雅黑');
- hold on;
- plot([1.5,3.5],[3.7,3.7],'Color',scatter_color,'Linewidth',1.5);
- text(2,3.9,'p = 0.0057','FontSize',15,'Fontname','微软雅黑');
最后设置横轴与纵轴的图例,马上就要大功告成啦
- %% 设置图例
- set(gca, 'Box', 'off','XGrid', 'off', 'YGrid', 'off','TickDir', 'out', 'TickLength', [.005 .005]);
- % 对Y轴显示范围与刻度设置
- set(gca,'YTick', 0:1:4, 'Ylim',[0,4]);
- % 对X轴显示范围与横坐标显示设置
- set(gca,'Xlim',[0 4],'Xtick', [0:0.5:4], 'Xticklabel',{'','0.5','4','8',' ','0.5','4','8'});
- % 对坐标轴添加图例
- ylabel(['KeNan','\\','1 ×10^5 Cells(uM)']);
- set(gca, 'FontName', 'Arial', 'FontSize', 15)
- set(gca,'linewidth',1.5)
一张论文柱状图就完成啦!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。