作者:郁雯佩菱2 | 来源:互联网 | 2023-02-06 12:04
当使用MATLAB中的bar()函数进行条形图绘制时,如果只有一组数据,则无法直接使各样条的颜色不同,不论数据是写成行向量还是列向量形式。这时可以在原始数据(行向量形式
当使用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)
第一幅图是基本功能的实现,第二图与第三幅图分别增加了用set()与legend()函数标注数据,最后一幅是对比图。
其中subplot()函数可以把多幅图画在同一个figure中,xlim()函数设置x轴的范围,axis()同时设置x轴与y轴范围。set()函数设置当前axis的x轴刻度内容,gca表示当前axis的句柄。legend()函数设置注释,注释面板位置可以使用legend()最后的参数进行调节。
另外,也可以使用title(), xlabel(), ylabel() 函数添加一些其他信息。