MATLAB绘图技巧-颜色渐变柱状图绘制
彭真明  |  01-27  |  科学网  |  263次阅读

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

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

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




文章原载于作者的科学网文章,所述内容属作者个人观点,不代表本平台立场。
本文经过系统重新排版,阅读原内容可点击 阅读原文