学术资讯 » 学术资源

  • 首 页
  • 期刊选题
  • 期刊点评
  • 期刊大全
  • 学人博客
  • 编辑征稿
  • 投稿选刊
  • 投稿群聊
  • 学术会议
  • 万维读书
  • SCI/E期刊
  • SSCI期刊
  • AHCI期刊
  • Matlab论文插图绘制模板第28期—柱状图(带误差棒)

    阅读: 2022/5/17 15:27:24

    在之前的文章中,分享了Matlab柱状图的绘制模板:

    折线图的绘制模板:

    散点图的绘制模板:

    在实际应用时,很多时候需要在以上内容基础上添加误差棒。

    所以,这次来分享一下带误差棒的柱状图的绘制模板,算是给柱状图打个补丁。

    或者,从另一个角度说,其实也可以叫误差棒(柱状图)的绘制模板,只不过误差棒基本不独立出现。

    先来看一下成品效果:

    特别提示:Matlab论文插图绘制模板系列,旨在降低大家使用Matlab进行科研绘图的门槛,只需按照模板格式添加相应内容,即可得到满足大部分期刊以及学位论文格式要求的数据插图。如果觉得有用可以分享给你的朋友。

    模板中最关键的部分内容:

    1. 数据准备

    此部分主要是读取数据,定义自变量和因变量。

    % 读取数据

    % 自变量

    x = 1:5;

    % 因变量

    % dataset为5*3的矩阵,一行3个为一组,共5组

    dataset = [0.241,0.393,0.294;

    0.219,0.254,0.238;

    0.238,0.262,0.272;

    0.198,0.329,0.287;

    0.201,0.197,0.185];

    % 误差矩阵

    AVG = dataset/5; % 下方长度

    STD = dataset/7; % 上方长度

    2. 颜色定义

    颜色搭配比较考验个人审美,需要多加尝试。

    这里用之前分享的colorplus工具:

    %% 颜色定义

    C1 = colorplus(239);

    C2 = colorplus(374);

    C3 = colorplus(357);

    获取方式:公众号(阿昆的科研日常)后台回复 450

    3. 带误差棒的柱状图绘制

    首先使用‘bar’命令,绘制初始柱状图,然后使用‘errorbar’命令,绘制每一根柱子的误差棒。

    % 绘制初始柱状图

    GO = bar(x,dataset,1,'EdgeColor','k');

    % 添加误差棒

    [M,N] = size(dataset);

    xpos = zeros(M,N);

    for i = 1:N

    xpos(:,i) = GO(1,i).XEndPoints'; % v2019b

    end

    hE = errorbar(xpos, dataset, AVG, STD);

    值得一提的是,模板中使用的XendPoints,可以给出柱状图每根柱子顶点的横坐标,但需要2019b以上的版本。如果不是,则需要自己定义误差棒中心的位置。

    4. 细节优化

    为了插图的美观,首先将柱状图赋上之前选好的颜色,然后调整误差棒的属性:

    % 柱状图赋色

    GO(1).FaceColor = C1;

    GO(2).FaceColor = C2;

    GO(3).FaceColor = C3;

    % 误差棒属性

    set(hE, 'LineStyle', 'none', 'Color', 'k','LineWidth', 1.2)

    进一步,对坐标轴参数、字体字号等进行调整:

    % 坐标区调整

    set(gca, 'Box', 'off', ... % 边框

    'XGrid', 'off', 'YGrid', 'on', ... % 网格

    'TickDir', 'out', 'TickLength', [.01 .01], ... % 刻度

    'XMinorTick', 'off', 'YMinorTick', 'off', ... % 小刻度

    'XColor', [.1 .1 .1], 'YColor',[.1 .1 .1],... % 坐标轴颜色

    'YTick', 0:0.1:1,... % 刻度位置、间隔

    'Ylim' , [0 0.5], ... % 坐标轴范围

    'Xticklabel',{'samp1' 'samp2' 'samp3' 'samp4' 'samp5'},...% X坐标轴刻度标签

    'Yticklabel',{[0:0.1:1]}) % Y坐标轴刻度标签

    % Legend 设置

    hLegend = legend([GO(1),GO(2),GO(3)], ...

    'A', 'B', 'C', ...

    'Location', 'northeast');

    % Legend位置微调

    P = hLegend.Position;

    hLegend.Position = P + [0.015 0.03 0 0];

    % 字体和字号

    set(gca, 'FontName', 'Helvetica')

    set([hXLabel, hYLabel], 'FontName','AvantGarde')

    set(gca, 'FontSize', 10)

    set([hXLabel, hYLabel], 'FontSize', 11)

    set(hTitle, 'FontSize', 11, 'FontWeight' ,'bold')

    % 背景颜色

    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');

    以上。

    转自:阿昆的科研日常

    如有侵权,请联系本站删除!


    浏览(492)
    点赞(0)
    收藏(0)
  • 上一篇:SCI论文撰写必备之高效插入参考文献,靠谱!

    下一篇:纠正对“以学生为中心教育”的误解

  • 首页

  • 文章

  • 期刊

  • 帮助

  • 我的

版权所有 Copyright@2023    备案号:豫ICP备2021036211号