当前位置: 首页>編程日記>正文

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

【Matlab绘图进阶第2弹】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种颜色数据啦

mycolor = [0,0.501960784313726,1;...1,1,1;....0.00392156862745098,0.00392156862745098,0.00392156862745098;...0.745098039215686,0.847058823529412,1;...1,0.949019607843137,0.741176470588235];

2. 数据准备

以下数据为自己复现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];

3. 画图函数使用

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

%% 开始绘图
% 设置背景为白色
figure('color',[1 1 1]);
% bar(X,Y,width) 宽度为柱状图宽度0.7,参数依次为颜色、边缘颜色与线宽
for i = 1:2b =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)

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

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

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

完整代码与资料获取链接


https://www.fengoutiyan.com/post/14484.html

相关文章:

  • 论文可以画图吗
  • 论文作图工具
  • 使用绘图矩形命令可以绘制多种图形
  • pdf绘图怎么绘制的
  • 绘图用具
  • 用绘图软件画图
  • 绘图步骤
  • 绘图软件有哪些
  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機