今天,来说下Matlab中,使用函数scatterhistogram绘制散点图并在轴坐标显示各类元素的直方图统计。使得数据点看起来非常直观,在统计学中使用也有一定帮助。轴坐标上显示的直方图,可以根据参数显示每一类元素的直方图统计信息。这对于数据分类也有帮助!
本文主要介绍scatterhistogram函数的常见用法、语法说明、使用表格数据创建散点直方图、为分组数据指定表变量、以可视方式呈现分类数据和数值数据、指定组数据和自定义图属性、指定散点直方图的外观、使用两个变量对数据进行分组,以及指定核密度直方图的相关案例分析。

下面,我们开始非常详细的讲解Matlab scatterhistogram 函数语法介绍,实例引用,结果展示。由于Matlab2016中(Matlab2020中有此函数),无此函数,今天的文章将直接分享官方相关内容的介绍。
常见用法
scatterhistogram(tbl,xvar,yvar) scatterhistogram(tbl,xvar,yvar,'GroupVariable',grpvar) scatterhistogram(xvalues,yvalues) scatterhistogram(xvalues,yvalues,'GroupData',grpvalues) scatterhistogram(___,Name,Value) scatterhistogram(parent,___) s = 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 中的数据进行分组。
scatterhistogram(___,Name,Value) 使用一个或多个名称-值对组参数指定边缘带直方图的散点图的其他选项。请在所有其他输入参数之后指定这些选项。
scatterhistogram(parent,___) 在由 parent 指定的图窗、面板或选项卡上创建边缘带直方图的散点图。
s = scatterhistogram(___) 返回 ScatterHistogramChart 对象。创建对象后,使用 s 修改该对象。
使用表格数据创建散点直方图
基于医疗患者数据表创建边缘带直方图的散点图。
加载 patients 数据集,并基于加载到工作区中的变量子集创建一个表。然后,创建一个散点直方图,用于将 Height 值与 Weight 值进行比较。
load patients tbl = table(LastName,Age,Gender,Height,Weight); s = scatterhistogram(tbl,'Height','Weight');

为分组数据指定表变量
使用 patients 数据集,创建一个边缘带直方图的散点图,并指定用于对数据进行分组的表变量。
加载 patients 数据集并基于数据创建一个散点直方图。比较患者的 Systolic 和 Diastolic 值。通过将 ‘GroupVariable’ 名称-值对组参数设置为 ‘Smoker’,根据患者的吸烟者状态对数据进行分组。
load patients tbl = table(LastName,Diastolic,Systolic,Smoker); s = scatterhistogram(tbl,'Diastolic','Systolic','GroupVariable','Smoker');

以可视方式呈现分类数据和数值数据
使用边缘带直方图的散点图,以可视方式呈现分类医疗数据和数值医疗数据。
加载 patients 数据集,并将 Smoker 数据转换为分类数组。然后,创建一个散点直方图,用于将患者的 Age 值与其吸烟者状态进行比较。生成的散点图包含重叠的数据点。然而,y 轴边缘直方图指示数据集中的非吸烟者远远多于吸烟者。
load patients Smoker = categorical(Smoker); s = scatterhistogram(Age,Smoker); xlabel('Age') ylabel('Smoker')

指定组数据和自定义图属性
使用鞋数据的数组创建一个边缘带直方图的散点图。根据鞋的颜色对数据进行分组,并自定义散点直方图的属性。
创建数据数组。然后,创建一个散点直方图以可视化数据。沿 x 轴和 y 轴使用自定义标签指定前两个输入参数的变量名称。您可以通过设置 ScatterHistogramChart 对象的属性来指定标题、轴标签和图例标题。
xvalues = [7 6 5 6.5 9 7.5 8.5 7.5 10 8]; yvalues = categorical({'onsale','regular','onsale','onsale', ... 'regular','regular','onsale','onsale','regular','regular'}); grpvalues = {'Red','Black','Blue','Red','Black','Blue','Red', ... 'Red','Blue','Black'}; s = scatterhistogram(xvalues,yvalues,'GroupData',grpvalues); s.Title = 'Shoe Sales'; s.XLabel = 'Shoe Size'; s.YLabel = 'Price'; s.LegendTitle = 'Shoe Color';
更改散点直方图中的颜色以匹配组标签。更改直方图中的 bin 宽度,便每个组的 bin 宽度都相同。
s.Color = {'Red','Black','Blue'}; s.BinWidths = 1;

指定散点直方图的外观
创建一个边缘带直方图的散点图。指定直方图的 bin 数和线宽、散点图的位置以及图例可见性。
加载 patients 数据集并基于数据创建一个散点直方图。比较患者的 Diastolic 和 Systolic 值,并根据患者的 SelfAssessedHealthStatus 值对数据进行分组。通过指定 NumBins 和 LineWidth 选项来调整直方图。使用 ScatterPlotLocation 选项将散点图放在图窗的 ‘NorthEast’ 位置。通过将 LegendVisible 选项指定为 ‘on’,确保图例可见。
load patients tbl = table(LastName,Diastolic,Systolic,SelfAssessedHealthStatus); s = scatterhistogram(tbl,'Diastolic','Systolic','GroupVariable','SelfAssessedHealthStatus', ... 'NumBins',4,'LineWidth',1.5,'ScatterPlotLocation','NorthEast','LegendVisible','on');

使用两个变量对数据进行分组
创建一个边缘带直方图的散点图。使用两个不同变量的组合对数据进行分组。
加载 patients 数据集。合并 Smoker 和 Gender 数据以创建一个新变量。创建一个散点直方图,用于比较患者的 Diastolic 和 Systolic 值。使用新变量 SmokerGender 对散点直方图中的数据进行分组。
load patients [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')

指定核密度直方图
创建一个具有核密度边缘直方图的散点图。此示例需要 Statistics and Machine Learning Toolbox™ 许可证。
加载 carsmall 数据集并基于数据创建一个散点直方图。比较 Horsepower 和 MPG 值。通过将 GroupVariable 选项设置为 Cylinders,使用气缸数对数据进行分组。通过将 HistogramDisplayStyle 选项设置为 ‘smooth’,指定核密度直方图。通过将 LineStyle 选项设置为 ‘-‘,为所有直方图指定实线。
load carsmall tbl = table(Horsepower,MPG,Cylinders); s = scatterhistogram(tbl,'Horsepower','MPG', ... 'GroupVariable','Cylinders','HistogramDisplayStyle','smooth', ... 'LineStyle','-');

本文来自转载,原文出处:MathWorks官网,由古哥整理发布
如若转载,请注明出处:https://iymark.com/program/matlab-data-function-scatterhistogram.html