首页 > 编程笔记 > MATLAB笔记 阅读:12

MATLAB scatterhistogram()函数的用法(附带实例)

在 MATLAB 中,利用函数 scatterhistogram() 可以创建带直方图的散点图,其调用格式如下:
scatterhistogram(tbl,xvar,yvar) % 基于表 tbl 创建一个边缘带直方图的散点图
                                % xvar 为沿 x 轴显示的表变量,yvar 为沿 y 轴显示的表变量
scatterhistogram(tbl,xvar,yvar,'GroupVariable',grpvar) % 使用 grpvar 指定的表变量对 xvar 和 yvar 指定的观测值进行分组
scatterhistogram(xvalues,yvalues) % 创建 xvalues 和 yvalues 数据的散点图
                                  % 沿 x 轴和 y 轴的边缘分别显示 xvalues 和 yvalues 数据的直方图
scatterhistogram(xvalues,yvalues,'GroupData',grpvalues) % 使用 grpvalues 中的数据对 xvalues 和 yvalues 中的数据进行分组

【实例 1】基于医疗患者数据表创建边缘带直方图的散点图。在编辑器中编写以下程序并运行:
load patients

subplot(2,2,1)
tbl = table(LastName,Age,Gender,Height,Weight);
s = scatterhistogram(tbl,'Height','Weight');

subplot(2,2,2)
tbl = table(LastName,Diastolic,Systolic,Smoker);
s = scatterhistogram(tbl,'Diastolic','Systolic',...  % 比较患者
                     'GroupVariable','Smoker');      % 指定用于对数据分组的表变量

subplot(2,2,[3 4])
[idx,genderStatus,smokerStatus] = findgroups(string(Gender),...
                                               string(Smoker));
SmokerGender = strcat(genderStatus(idx),"_",smokerStatus(idx));
s = scatterhistogram(Diastolic,Systolic,...
                     'GroupData',SmokerGender,'LegendVisible','on');
xlabel('Diastolic')
ylabel('Systolic')
运行程序后,输出如下图所示的图形:


图 1 边缘带直方图的散点图

【实例 2】创建一个具有核密度边缘直方图的散点图。在编辑器中编写以下程序并运行:
load carsmall
tbl = table(Horsepower,MPG,Cylinders);
s = scatterhistogram(tbl,'Horsepower','MPG',...
                     'GroupVariable','Cylinders',...
                     'HistogramDisplayStyle','smooth',...
                     'LineStyle','-');
运行程序后,输出如下图所示的图形:


图 2 具有核密度边缘直方图的散点图

相关文章