当前位置:   article > 正文

【Matlab绘图进阶第2弹】Matlab绘制论文柱状图_matlab柱状图配色

matlab柱状图配色

柱状图是SCI论文中较常见的一种图示类型,本期通过Matlab绘制出包含误差与显著性的进阶柱状图,今天分享如何从0到1实现柱状图的绘制!

成图效果展示

绘图三步走

  1.  配色

    论文配色是最为关键的因素,配色是一篇论文的颜值担当,好的配色给审稿人带来好的第一印象,好的配色事半功倍。

  2. 数据准备

    数据主要来自于大家实验处理后的数据,该图所需数据主要分为三部分:散点数据、误差棒数据、柱状图数据,最终的成图也是将这三部分数据有机融合在一张图示中。

  3. 函数使用

    Matlab有着强大的数据处理与绘图功能,主要离不开丰富的函数库,该图主要采用了三种函数:bar(柱状图)、scatter(散点图)、errorbar(误差)。下面让我们一起开始学习吧。

1. 配色

颜色提取的方法主要是从PPT中进行提取,首先选择一张喜欢的SCI图片,下图为搜索到的一张图片,以该图片为例进行颜色提取。

步骤1.1—网上搜索自己想要的图片或者已有的SCI论文中好看的图片,以下图为例。

步骤1.2—复制图片到PPT中,插入形状,此处选择圆形-点击圆形找到形状填充-取色器-单击图片中喜欢的颜色位置-此时形状填充颜色改变-完成取色-记录配色RGB值。

步骤1.3—保存配色RGB值到Matlab中,此处需要注意的是,在Matlab中,需要将RGB值除以255,位于0-1之间,下图为本次绘图中用到的配色。

 以下就是保存到Matlab中的5种颜色数据啦

  1. mycolor = [0,0.501960784313726,1;...
  2. 1,1,1;....
  3. 0.00392156862745098,0.00392156862745098,0.00392156862745098;...
  4. 0.745098039215686,0.847058823529412,1;...
  5. 1,0.949019607843137,0.741176470588235];

2. 数据准备

以下数据为自己复现SCI拟定的数据,大家可以根据自己的数据进行修改。

  1. %% 自定义柱状图数据
  2. X = [0.5 1 1.5;2.5 3 3.5]; % 1 2代表有两大组柱状图
  3. Y = [1.8,1.5,1;2.3,2.5,2.2]; %每组有三个数
  4. %% 自定义散点图数据
  5. scatter_X = [0.4,0.5,0.6, 0.9,1,1.1, 1.43,1.5,1.58,...
  6. 2.5,2.5,2.5, 2.9,3,3.1, 3.4,3.5,3.6];
  7. scatter_Y = [1.83,1.75,1.82, 1.42,1.60,1.44, 0.89,1.17,0.93,...
  8. 2.13,2.3,2.47, 2.37,2.68,2.45, 2.3,2.01,2.3];
  9. %% 自定义误差棒的值 相对于Y上下数值
  10. Y_low = [0,0.07,0.08;0.1,0.1,0.1];
  11. Y_high =[0,0.07,0.08;0.1,0.1,0.1];

3. 画图函数使用

使用bar函数绘制柱状图、errorbar绘制误差线、scatter绘制散点;'FaceColor'用来改变柱状图内部颜色;'EdgeColor'用来定义边线颜色;'Linewidth'改变线宽。代码如下:

  1. %% 开始绘图
  2. % 设置背景为白色
  3. figure('color',[1 1 1]);
  4. % bar(X,Y,width) 宽度为柱状图宽度0.7,参数依次为颜色、边缘颜色与线宽
  5. for i = 1:2
  6. b =bar(X(i,:),Y(i,:),0.7,'stacked','FaceColor',bar_color(i,:),'EdgeColor',...
  7. scatter_color,'Linewidth',1.5);
  8. hold on;
  9. % errorbar函数 绘制误差棒
  10. %errorbar(X,Y,Low,High);参数以柱状图为基础、上下限高度、线宽、误差棒的长短
  11. errorbar(X(i,:),Y(i,:),Y_low(i,:),Y_high(i,:),...
  12. 'LineStyle','none',...
  13. 'Color',scatter_color,...
  14. 'Linewidth',1.5,'Capsize',12);
  15. end
  16. %% 绘制散点图
  17. % 绘制实心散点
  18. % scatter(X,Y) 参数:点的大小、填充颜色
  19. for i = 1:length(scatter_X)
  20. scatter(scatter_X(i),scatter_Y(i),35,'filled','MarkerFaceColo',scatter_color);
  21. end
  22. hold on;

此时距离出图接近了一步;接着用plot与text函数绘制横线与显著性等要素。

  1. %% 绘制直线 函数——plot:绘制直线 text:添加文本
  2. plot([0.5,1.5],[2.1,2.1],'Color',scatter_color,'Linewidth',1.5);
  3. text(0.51,2.3,'p = 0.0078','FontSize',15,'Fontname','微软雅黑');
  4. hold on;
  5. plot([0.5,2.5],[2.8,2.8],'Color',scatter_color,'Linewidth',1.5);
  6. text(1.0,3,'p = 0.0315','FontSize',15,'Fontname','微软雅黑');
  7. hold on;
  8. plot([1,3],[3.28,3.28],'Color',scatter_color,'Linewidth',1.5);
  9. text(1.6,3.5,'p = 0.0044','FontSize',15,'Fontname','微软雅黑');
  10. hold on;
  11. plot([1.5,3.5],[3.7,3.7],'Color',scatter_color,'Linewidth',1.5);
  12. text(2,3.9,'p = 0.0057','FontSize',15,'Fontname','微软雅黑');

最后设置横轴与纵轴的图例,马上就要大功告成啦

  1. %% 设置图例
  2. set(gca, 'Box', 'off','XGrid', 'off', 'YGrid', 'off','TickDir', 'out', 'TickLength', [.005 .005]);
  3. % 对Y轴显示范围与刻度设置
  4. set(gca,'YTick', 0:1:4, 'Ylim',[0,4]);
  5. % 对X轴显示范围与横坐标显示设置
  6. set(gca,'Xlim',[0 4],'Xtick', [0:0.5:4], 'Xticklabel',{'','0.5','4','8',' ','0.5','4','8'});
  7. % 对坐标轴添加图例
  8. ylabel(['KeNan','\\','1 ×10^5 Cells(uM)']);
  9. set(gca, 'FontName', 'Arial', 'FontSize', 15)
  10. set(gca,'linewidth',1.5)

一张论文柱状图就完成啦!

下一期:Matlab绘制高颜值热图

柱状图代码资料获取方式:

完整代码与资料获取链接

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号