没想到一个柱状图可以出这么多期……
在之前的文章中,分享了一个Matlab多组柱状图的绘制模板。
之所以直接出多组而不是单组,是想着方便大家举一反三的。
但分享了这么多期后发现,要说方便,那还是每一种数据图都出一个模板来的方便。
那这次就把单组柱状图补上。
先来看一下成品效果:
特别提示:Matlab论文插图绘制模板系列,旨在降低大家使用Matlab进行科研绘图的门槛,只需按照模板格式添加相应内容,即可得到满足大部分期刊以及学位论文格式要求的数据插图。如果觉得有用可以分享给你的朋友。
模板中最关键的部分内容:
1. 数据准备
此部分主要是读取数据,定义自变量和因变量。
% 读取数据
% 自变量
x = 1:10;
% 因变量
dataset =[0.341,0.493,0.324,0.428,0.333,0.341,0.493,0.324,0.428,0.333];
2. 颜色定义
颜色搭配比较考验个人审美,需要多加尝试。
这里我直接图省事儿,用之前分享的addcolorplus工具的渐变色:
%% 颜色定义
map = addcolorplus(296);
idx = linspace(1,64,10);
idx = round(idx);
C = map(idx,:);
其中,linspace(1,64,10)里的10表示因变量的个数,也就是bar的数量。
3. 多色单组柱状图绘制
使用‘bar’命令,绘制未经美化的单组柱状图。
GO =bar(x,dataset,0.6,'EdgeColor','k','LineWidth', 1);
hXLabel = xlabel('Samples');
hYLabel = ylabel('RMSE (m)');
4. 细节优化
为了插图的美观,赋上之前选择好的颜色。
GO.FaceColor = 'flat';
for i = 1:10
GO.CData(i,:) = C(i,:);
end
进一步,调整坐标轴、坐标轴刻度及其标签,
% 坐标区调整
set(gca, 'Box', 'off', ... % 边框
'LineWidth', 1, 'GridLineStyle', '-',... % 坐标轴线宽
'XGrid', 'off', 'YGrid', 'off', ... % 网格
'TickDir', 'out', 'TickLength', [.015 .015], ... % 刻度
'XMinorTick', 'off', 'YMinorTick', 'off', ... % 小刻度
'XColor', [.1 .1 .1], 'YColor',[.1 .1 .1],... % 坐标轴颜色
'YTick', 0:0.1:1,... % 刻度位置、间隔、范围
'Ylim' , [0 0.6], ...
'Xlim' , [0.3 10.7], ...
'XTick', 1:10,...
'Xticklabel',{1:10},... % X坐标轴刻度标签
'Yticklabel',{[0:0.1:1]}) % Y坐标轴刻度标签
最后调节字体字号。
% 字体和字号
set(gca, 'FontName', 'Helvetica')
set([hXLabel, hYLabel], 'FontName','AvantGarde')
set(gca, 'FontSize', 10)
set([hXLabel, hYLabel], 'FontSize', 12)
设置完毕后,以期刊所需分辨率、格式输出图片。
%% 图片输出
figW = figureWidth;
figH = figureHeight;
set(figureHandle,'PaperUnits',figureUnits);
set(figureHandle,'PaperPosition',[0 0 figWfigH]);
fileout = 'eg1';
print(figureHandle,[fileout,'.png'],'-r300','-dpng');
也可以尝试不同的配色:
以上。
Matlab单组多色柱状图https://mp.weixin.qq.com/s/iQogpnadGdjKb7g-Hhm-vA