MATLAB中如何在绘制条形图(bar graph)时,处理只有一组数据的颜色设置问题

        当使用MATLAB中的bar()函数进行条形图绘制时,如果只有一组数据,则无法直接使各样条的颜色不同,不论数据是写成行向量还是列向量形式。

        这时可以在原始数据(行向量形式)基础上增加一行全为0的数据,使数据变为两行,颜色正常。接下来把坐标轴缩短即可,使用axis()函数或者xlim()函数。

        缺点是:只可以在x轴统一设置,使用set()函数直接写,不过需要使用空格对齐。而不能直接设置各条数据代表的内容,因为所有数据在x轴处共占一个刻度。另一种方法是使用legend(),单独列出每个数据的含义。

        接下来是一段代码实现及结果:

x=[1.2 3.1 2.2; 0 0 0];

subplot(2,2,1);
bar(x);
xlim([0 2]);% another way: axis([0 2 0 4])

subplot(2,2,2);
bar(x);
xlim([0 2]);
set(gca,'xticklabel',{'A   B   C',''});

subplot(2,2,3);
bar(x);
xlim([0 2])
legend('A','B','C',0)

subplot(2,2,4)
x0=[1.2 3.1 2.2]
bar(x0)


MATLAB中如何在绘制条形图(bar graph)时,处理只有一组数据的颜色设置问题_第1张图片


        第一幅图是基本功能的实现,第二图与第三幅图分别增加了用set()与legend()函数标注数据,最后一幅是对比图。

        其中subplot()函数可以把多幅图画在同一个figure中,xlim()函数设置x轴的范围,axis()同时设置x轴与y轴范围。set()函数设置当前axis的x轴刻度内容,gca表示当前axis的句柄。legend()函数设置注释,注释面板位置可以使用legend()最后的参数进行调节。

        另外,也可以使用title(), xlabel(), ylabel() 函数添加一些其他信息。

你可能感兴趣的:(matlab,条形图)