老马迷图分享 http://blog.sciencenet.cn/u/zmpenguestc 网络空间做伏枥老马,志在千里育识途小驹!

博文

MATLAB绘图技巧-颜色渐变柱状图绘制

已有 5096 次阅读 2024-1-27 20:33 |个人分类:闻图思学|系统分类:科研笔记

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

在实验数据的可视化环节,对数据的统计分析常采用绘制柱状图(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

上一篇:相守16年,网事如烟
下一篇:MATLAB绘图技巧-折线图绘制
收藏 IP: 182.149.156.*| 热度|

7 杨正瓴 郑永军 刘进平 张忆文 宁利中 孙颉 刘跃

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-12-27 10:10

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部