||
无论写毕业论文或是发表小论文,对图的绘制质量都有要求,精致的绘图会给评阅人好的第一印象,也会让读者赏心悦目。
在实验数据的可视化环节,对数据的统计分析常采用绘制柱状图(bar)进行表达。
柱状图可以采用MATLAB提供的bar函数,简单实现。但缺省状态下,绘制结果可能达不到个人想要的效果,特别是柱子的颜色设置,坐标轴的标注样式等。
通常,bar函数绘制多组数据的柱状图时,组内数据颜色按设定colormap变化,不同组之间的颜色则按同一模式重复分布。
例如给定4类数据,共10组,绘制柱状图,可按如下方式简单实现:
y = rand(10,4); % 随机数
bar(y); % 绘制柱状图
set(gca,'XLim',[0 11]); %设定X轴绘制范围
程序运行结果如下:
图1 10组4类不同数据的柱状图
柱状图的颜色(colormap)按缺省的'Parula'模式。不过,这个可以重新设定colormap来改变颜色模式。
如果只想从10组中选一组数据绘制柱状图,则有
bar(y(1,:)); % 绘制柱状图
运行结果如下:
图2 抽取第1组数据的柱状图(仅单色)
显示结果发现不同类型数据组内为单色;除非绘制多组(2组以上),再通过设定横坐标限制显示范围来实现。
下面一段代码(MATLAB 2017a版本)可实现单组数据柱子的颜色变化,也可改变多组数据之间重复颜色分布的模式。
y = rand(10,4);
% Add NaNs (for separation) and flatten
separation_gap = 1; % 2 columns of NaN
y_nan = [y nan(size(y,1), separation_gap)]';
y_flat = [nan(separation_gap,1); y_nan(:)];
N = size(y_flat,1);
% Convert values to colomap
y_color = colormap('jet');
hold on; grid on
% Plot and change colors
for k = 1:N
b = bar(k, y_flat(k), 0.8, 'grouped');
set(b(1),'FaceColor', y_color(k,:))
end
box on
title('Bar with height-dependant color');
set(gca,'XLim',[0 52]);
程序运行结果如下:
图3 组内颜色渐变的柱状图
如果是更高版本的MATLAB,可能设计更灵活,更方便实现。
长按/扫一扫二维码,敬请关注“闻道研学”
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-9-1 07:13
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社