学术资讯 » 学界研圈

  • 首 页
  • 期刊选题
  • 期刊点评
  • 期刊大全
  • 学人博客
  • 编辑征稿
  • 投稿选刊
  • 万维群组
  • 学术会议
  • 万维读书
  • SCI/E期刊
  • SSCI期刊
  • AHCI期刊
  • Matlab论文插图绘制模板第63期—高度赋色的水平三维柱状图

    阅读: 2022/11/18 15:50:30

    上一篇文章中,分享了一个Matlab水平三维柱状图的绘制模板:

    可以看到,它的每一列用的是同一个颜色。

    如果想要根据每一根柱子的高度,赋予不同的颜色,应该怎么操作呢?

    直接来看一下成品效果:

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

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

    1. 数据准备

    此部分主要是读取数据。

    % 读取数据

    load BostonTemp.mat

    yearIdx = 16;

    TempData6Years = Temperatures(yearIdx:yearIdx+5,:);

    2. 颜色定义

    由于需要根据不同的高度进行赋色,所以采用渐变色配色。

    这里直接使用TheColor配色工具中的SCI权威配色库:

    %% 颜色定义

    map = TheColor('sci',2052);

    map = flipud(map);

    (点击上图查看TheColor具体功能)

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

    3. 高度赋色的水平三维柱状图绘制

    使用‘bar3h’命令,绘制未经美化的水平三维柱状图。

    GO = bar3h(TempData5Years,0.5);

    hTitle = title(sprintf('Average Monthly Temperatures from %d to %d',Year(yearIdx),Year(yearIdx+4)));

    hXLabel = xlabel('Month');

    hYLabel = ylabel('Temperature (\circF)');

    hZLabel = zlabel('Year');

    view(-37,27)

    4. 细节优化

    首先,将ydata作为cdata的值,也就是使用高度赋色,并使用colormap命令赋上之前选择好的颜色:

    % 赋色

    for n=1:numel(GO)

    cdata=get(GO(n),'ydata');

    cdata=repmat(max(cdata,[],2),1,4);

    set(GO(n),'cdata',cdata,'facecolor','flat')

    end

    colormap(map)

    这时,如果用colorbar命令查看赋色范围会发现,有很大一部分颜色没有用到。

    原因是colormap的起始值为0,而水平三维柱状图的起始值并不为0.

    因此,使用caxis命令调整赋色范围:

    % 区间调整

    temp = minmax(TempData5Years(:)');

    caxis(temp)

    进一步,调整坐标轴、坐标轴刻度、标签、字体字号等属性:

    % 坐标区调整

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

    'LineWidth', 1, 'GridLineStyle', '-',... % 坐标轴线宽

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

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

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

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

    'Xticklabel',Months,... % X坐标轴刻度标签

    'Zticklabel',Year(yearIdx):Year(yearIdx+4)) % Z坐标轴刻度标签

    % 字体和字号

    set(gca, 'FontName', 'Arial', 'FontSize', 10)

    set([hXLabel, hYLabel,hZLabel], 'FontSize', 11, 'FontName', 'Arial')

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

    % 背景颜色

    set(gcf,'Color',[1 1 1])

    设置完毕后,所需分辨率、格式输出

    :

    %%

    输出

    figW = figureWidth;

    figH = figureHeight;

    set(figureHandle,'PaperUnits',figureUnits);

    set(figureHandle,'PaperPosition',[0 0 figW figH]);

    fileout = 'test';

    print(figureHandle,[fileout,'.png'],'-r300','-dpng');

    也可以尝试其它配色:

    以上。

    转自:“阿昆的科研日常”微信公众号

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


    浏览(258)
    点赞(0)
    收藏(0)
  • 上一篇:Matlab如何提取论文插图中的渐变色?一招轻松搞定

    下一篇:Matlab论文插图绘制模板第64期—水平三维柱状图(渐变)

  • 首页

  • 文章

  • 期刊

  • 帮助

  • 我的

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