彭真明
MATLAB绘图技巧-颜色渐变柱状图绘制
2024-1-27 20:33
阅读:2374

无论写毕业论文或是发表小论文,对图的绘制质量都有要求,精致的绘图会给评阅人好的第一印象,也会让读者赏心悦目。

在实验数据的可视化环节,对数据的统计分析常采用绘制柱状图(bar)进行表达。

柱状图可以采用MATLAB提供的bar函数,简单实现。但缺省状态下,绘制结果可能达不到个人想要的效果,特别是柱子的颜色设置,坐标轴的标注样式等。

通常,bar函数绘制多组数据的柱状图时,组内数据颜色按设定colormap变化,不同组之间的颜色则按同一模式重复分布。

例如给定4类数据,共10组,绘制柱状图,可按如下方式简单实现:

y = rand(10,4); % 随机数

bar(y); % 绘制柱状图

set(gca,'XLim',[0 11]); %设定X轴绘制范围

程序运行结果如下:

fig 1-1.png

图1 10组4类不同数据的柱状图

柱状图的颜色(colormap)按缺省的'Parula'模式。不过,这个可以重新设定colormap来改变颜色模式。

如果只想从10组中选一组数据绘制柱状图,则有

bar(y(1,:)); % 绘制柱状图 

运行结果如下:

fig1-2.png

图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]);

程序运行结果如下:

fig1-3.png

图3 组内颜色渐变的柱状图

如果是更高版本的MATLAB,可能设计更灵活,更方便实现。

end.jpg

my2dcode.png

长按/扫一扫二维码,敬请关注“闻道研学”

转载本文请联系原作者获取授权,同时请注明本文来自彭真明科学网博客。

链接地址:https://wap.sciencenet.cn/blog-425437-1419589.html?mobile=1

收藏

分享到:

当前推荐数:6
推荐到博客首页
网友评论0 条评论
确定删除指定的回复吗?
确定删除本博文吗?