当使用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)
其中subplot()函数可以把多幅图画在同一个figure中,xlim()函数设置x轴的范围,axis()同时设置x轴与y轴范围。set()函数设置当前axis的x轴刻度内容,gca表示当前axis的句柄。legend()函数设置注释,注释面板位置可以使用legend()最后的参数进行调节。
另外,也可以使用title(), xlabel(), ylabel() 函数添加一些其他信息。