MATLAB作直方图和改横坐标为变量名称且竖着显示
当我们进行数据分析时,想要直观地了解数据的规律趋势等特征,可以使用MATLAB作一个直方图来观察。但在使用MATLAB作直方图时,相信以下需求大家可能会碰到:需要将横坐标的刻度更改成与实际数据数量一样多的刻度个数,需要将刻度名称更改成变量的名称,需要将变量名称竖着或斜着显示(否则可能出现文字重叠情况),其他需求(添加标题,坐标轴标签)等。下面分享一个MATLAB程序帮助大家解决上述需求,帮助大家更好地使用MATLAB作图。
操作方法
- 01
首先准备好需要用于作图的“带变量名样本数据.xlsx”Excel表格,如下图所示。
- 02
有了带变量名样本数据.xlsx”Excel表格后,将将表格数据和变量名称都读入到MATLAB中,代码如下: [yb_data,yb_name]=xlsread('带变量名样本数据.xlsx'); %读入带变量名样本数据,数据放在yb_data中,变量名称放在yb_name中。 运行结果如下图所示。
- 03
然后计算带变量名样本数据的大小,使用size函数即可,决定后续程序循环起止范围。程序如下: [n,p]=size(yb_data); n行,p列,运行结果如下。
- 04
接下来作直方图,使用bar函数。 程序如下: subplot(2,2,1); bar (yb_data(1:p)) 其中subplot是指定在figure中位置和划分图数量,(2,2,1)代表划分了4个作图区间,在第一个作图区间作图。 作出的直方图如下图所示,可以发现下面的直方图还是很难被理解,需要进一步添加注释修改直方图以帮助理解。
- 05
进一步添加注释修改直方图。首先,将横坐标的刻度更改成与实际数据数量一样多的刻度个数。 程序如下: set(gca, 'XTick', [1:p]) % X坐标轴刻度数据点位置个数 其中p就是上面计算的列数。 运行结果如下。发现基本上没有差别是因为变量个数比较少,当变量个数比较多的时候,坐标轴就变化很大了,从原先区间代表变成点代表。
- 06
下面为纵坐标y轴添加标签“数值”,和将刻度名称更改成变量的名称。 MATLAB代码如下: ylabel('数值'); set(gca, 'XTickLabels', {yb_name{:,1:p}}) 运行结果如下。可以发现虽然成功将刻度名称更改成了变量的名称,但是显示的时候出现文字重叠情况,需要将变量名称进行旋转调整以清晰可见。
- 07
接下来将变量名称竖着或斜着显示。 程序如下: set(gca,'XTickLabelRotation',46) 说明:改变数字46可以改变变量名称旋转的角度,这里46代表旋转了46度。 运行结果如下。可以发现将变量名称进行了旋转,清晰可见了。
- 08
最后,在图上添加一个标题“直方图”以说明所作的图的含义。使用标准作图函数title即可。 程序如下: title('直方图'); 运行后在图上添加了标题,如下图所示。
- 09
完整的“MATLAB作直方图和改横坐标为变量名称且竖着显示”代码及截图如下所示: [yb_data,yb_name]=xlsread('带变量名样本数据.xlsx'); %读入带变量名样本数据,数据放在yb_data中,变量名称放在yb_name中 [n,p]=size(yb_data); subplot(2,2,1); bar (yb_data(1:p)) set(gca, 'XTick', [1:p]) % X坐标轴刻度数据点位置个数 ylabel('数值'); set(gca, 'XTickLabels', {yb_name{:,1:p}}) set(gca,'XTickLabelRotation',46) title('直方图');