本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

scatterhistogram

创建带直方图的散点图

说明

示例

s = scatterhistogram(tbl,xvar,yvar) 基于表 tbl 创建在边缘处带有直方图的散点图,并返回 ScatterHistogramChart 对象。xvar 输入参数指示沿 x 轴显示的表变量。yvar 输入参数指示沿 y 轴显示的表变量。在创建对象之后可使用 s 对其进行修改。有关属性列表,请参阅 ScatterHistogramChart 属性

示例

s = scatterhistogram(tbl,xvar,yvar,'GroupVariable',grpvar) 使用 grpvar 指定的表变量对 xvaryvar 指定的观测值进行分组。

示例

s = scatterhistogram(xvalues,yvalues) 创建 xvaluesyvalues 数据的散点图,并沿 x 轴和 y 轴的边缘分别显示 xvaluesyvalues 数据的直方图。

示例

s = scatterhistogram(xvalues,yvalues,'GroupData',grpvalues) 使用 grpvalues 中的数据对 xvaluesyvalues 中的数据进行分组。

示例

s = scatterhistogram(___,Name,Value) 使用一个或多个名称-值对组参数指定边缘带直方图的散点图的其他选项。请在所有其他输入参数之后指定这些选项。有关属性列表,请参阅 ScatterHistogramChart 属性

s = scatterhistogram(parent,___) 在由 parent 指定的图窗、面板或选项卡上创建边缘带直方图的散点图。

示例

全部折叠

基于医疗患者数据表创建边缘带直方图的散点图。

加载 patients 数据集,并基于加载到工作区中的变量子集创建一个表。然后,创建一个散点直方图,用于将 Height 值与 Weight 值进行比较。

load patients
tbl = table(LastName,Age,Gender,Height,Weight);
s = scatterhistogram(tbl,'Height','Weight');

使用 patients 数据集,创建一个边缘带直方图的散点图,并指定用于对数据进行分组的表变量。

加载 patients 数据集并基于数据创建一个散点直方图。比较患者的 SystolicDiastolic 值。通过将 '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 数据集并基于数据创建一个散点直方图。比较患者的 DiastolicSystolic 值,并根据患者的 SelfAssessedHealthStatus 值对数据进行分组。通过指定 NumBinsLineWidth 选项来调整直方图。使用 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 数据集。合并 SmokerGender 数据以创建一个新变量。创建一个散点直方图,用于比较患者的 DiastolicSystolic 值。使用新变量 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 数据集并基于数据创建一个散点直方图。比较 HorsepowerMPG 值。通过将 GroupVariable 选项设置为 Cylinders,使用气缸数对数据进行分组。通过将 HistogramDisplayStyle 选项设置为 'smooth',指定核密度直方图。通过将 LineStyle 选项设置为 '-',为所有直方图指定实线。

load carsmall
tbl = table(Horsepower,MPG,Cylinders);
s = scatterhistogram(tbl,'Horsepower','MPG', ...
    'GroupVariable','Cylinders','HistogramDisplayStyle','smooth', ...
    'LineStyle','-');

输入参数

全部折叠

源表,指定为表。

您可以使用 table 函数根据工作区变量创建表,也可以使用 readtable 函数以表的形式导入数据。

源表存储在 ScatterHistogramChart 对象的 SourceTable 属性中。

x 轴的表变量,指定为下列形式之一:

  • 字符向量或字符串标量 - 指示变量名称之一。例如,scatterhistogram(tbl,'Acceleration','Horsepower') 为 x 轴选择名为 'Acceleration' 的变量。

  • 数值标量 - 指示表变量索引。例如,scatterhistogram(tbl,5,3) 为 x 轴选择表中的第五个变量。

  • 逻辑向量 - 包含一个 true 元素。

与表变量关联的值必须为数值类型或 categorical 类型。

ScatterHistogramChart 对象的 XVariable 属性存储选定变量的名称。

y 轴的表变量,指定为下列形式之一:

  • 字符向量或字符串标量 - 指示变量名称之一。例如,scatterhistogram(tbl,'Acceleration','Horsepower') 为 y 轴选择名为 'Horsepower' 的变量。

  • 数值标量 - 指示表变量索引。例如,scatterhistogram(tbl,5,3) 为 y 轴选择表中的第三个变量。

  • 逻辑向量 - 包含一个 true 元素。

与表变量关联的值必须为数值类型或 categorical 类型。

ScatterHistogramChart 对象的 YVariable 属性存储选定变量的名称。

用于对数据分组的表变量,指定为下列形式之一:

  • 字符向量或字符串标量 - 指示变量名称之一

  • 数值标量 - 指示表变量索引

  • 逻辑向量 - 包含一个 true 元素

与表变量关联的值必须构成一个数值向量、逻辑向量、分类数组、字符串数组或字符向量元胞数组。

grpvarxvaryvar 中的数据拆分为具有唯一性的组。每个组在每个轴上都有默认颜色和独立的直方图。在图例中,scatterhistogram 按照组在 GroupData 中首次出现的顺序显示其组名称。

示例: 'Model_Year'

示例: 2

显示在 x 轴上的值,指定为数值向量或分类数组。

ScatterHistogramChart 对象的 XData 属性存储 xvalues 数据。

示例: [0.5 4.3 2.4 5.6 3.4]

示例: categorical({'small','medium','small','large','medium','small'})

显示在 y 轴上的值,指定为数值向量或分类数组。

ScatterHistogramChart 对象的 YData 属性存储 yvalues 数据。

示例: [0.5 4.3 2.4 5.6 3.4]

示例: categorical({'small','medium','small','large','medium','small'})

散点图和对应的边缘直方图的组值,指定为数值向量、逻辑向量、分类数组、字符串数组或字符向量元胞数组。

grpvaluesxvaluesyvalues 中的数据拆分为具有唯一性的组。每个组在每个轴上都有默认颜色和独立的直方图。在图例中,scatterhistogram 按照组在 GroupData 中首次出现的顺序显示其组名称。

示例: [1 2 1 3 2 1 3]

示例: categorical({'blue','green','green','blue','green'})

父容器,指定为 FigurePanelTabTiledChartLayout 对象。

名称-值对组参数

指定可选的、以逗号分隔的 Name,Value 对组参数。Name 为参数名称,Value 为对应的值。Name 必须放在引号中。您可采用任意顺序指定多个名称-值对组参数,如 Name1,Value1,...,NameN,ValueN 所示。

示例: scatterhistogram(tbl,xvar,yvar,'GroupVariable',grpvar,'HistogramDisplayStyle','stairs')grpvar 指定为分组变量,并在散点图旁边显示阶梯图。

注意

此处所列的属性只是一部分。有关完整列表,请参阅 ScatterHistogramChart 属性

图标题,指定为字符向量、字符串数组、字符向量元胞数组或分类数组。默认图没有标题。

要创建一个多行标题,请指定字符串数组或字符向量元胞数组。数组中的每个元素对应一行文本。

如果将标题指定为分类数组,MATLAB® 将使用数组中的值,而不是类别。

示例: s = scatterhistogram(__,'Title','My Title Text')

示例: s.Title = 'My Title Text'

示例: s.Title = {'My','Title'}

直方图 bin 数量,指定为正整数标量、2×1 正整数向量或 2×n 正整数矩阵,其中 n 为 GroupData 中的组数。

指定的值说明
标量该值是 x 和 y 直方图的 bin 数量。
2×1 向量第一个值是 x 数据的 bin 数量,第二个值是 y 数据的 bin 数量。
2×n 矩阵(1,j) 值是第 j 个组中 x 数据的直方图的 bin 数量。同样,(2,j) 值是第 j 个组中 y 数据的直方图的 bin 数量。

scatterhistogram 使用 histogram'BinMethod','auto' 名称-值对组参数来确定默认 NumBinsBinWidths 值。

您不能更改分类数据的 NumBins

示例: s = scatterhistogram(__,'NumBins',20)

示例: s.NumBins = [10; 15]

直方图显示样式,指定为下列选项之一。

显示样式说明
'stairs'显示阶梯图,该图显示直方图的轮廓而不填充条形。
'bar'显示直方条形图。
'smooth'显示通过核密度估计值生成的平滑图。此选项需要 Statistics and Machine Learning Toolbox 许可证。

scatterhistogram 使用 'pdf' 归一化类型来生成直方图。有关详细信息,请参阅 histogram'Normalization' 名称-值对组参数。

示例: s = scatterhistogram(__,'HistogramDisplayStyle','smooth')

示例: s.HistogramDisplayStyle = 'bar'

直方图线宽,指定为正标量或正向量,以磅为单位。默认情况下,scatterhistogram 为直方图中的每个线条指定 0.5 的线宽。

当组的总数超过指定的线宽数量时,scatterhistogram 将循环使用指定的线宽。

示例: s = scatterhistogram(__,'LineWidth',0.75)

示例: s.LineWidth = [0.5 0.75 0.5]

每个散点图组的标记符号,指定为下列形式之一:

  • 指定标记样式的字符向量

  • 指定一个或多个标记样式的字符串数组或字符向量元胞数组

从这些标记选项中进行选择。

说明
'o'圆圈
'+'加号
'*'星号
'.'
'x'叉号
'square''s'方形
'diamond''d'菱形
'^'上三角
'v'下三角
'>'右三角
'<'左三角
'pentagram''p'五角星(五角形)
'hexagram''h'六角星(六角形)
'none'无标记

默认情况下,scatterhistogram 为散点图中的每个组指定标记符号 'o'。当组的总数超过指定的符号数量时,scatterhistogram 将循环使用指定的符号。

示例: s = scatterhistogram(__,'MarkerStyle','x')

示例: s.MarkerStyle = {'x','o'}

散点图的位置,指定为以下选项之一。

位置说明
'SouthWest'在散点图的右上方绘制直方图。
'SouthEast'在散点图的左上方绘制直方图。
'NorthEast'在散点图的左下方绘制直方图。
'NorthWest'在散点图的右下方绘制直方图。

示例: s = scatterhistogram(__,'ScatterPlotLocation','NorthEast')

示例: s.ScatterPlotLocation = 'SouthEast'

图例可见性的状态,指定为 'on''off'。将 LegendVisible 设置为 'on' 会显示图例,设置为 'off' 会隐藏图例。

如果 GroupData 为空 ([]) 或只包含一个组,则 scatterhistogram 不显示图例。否则,scatterhistogram 默认显示图例,除非图例与散点图或边缘直方图重叠。

在图例中,scatterhistogram 按照组在 GroupData 中首次出现的顺序显示其组名称。

示例: s = scatterhistogram(__,'LegendVisible','on')

示例: s.LegendVisible = 'off'

提示

  • 要以交互方式浏览 ScatterHistogramChart 对象中的数据,请使用以下选项。其中一些选项在实时编辑器中不可用。

    • 缩放/平移 - 使用滚轮或 +- 键进行缩放。点击并拖动散点图以进行平移。scatterhistogram 根据当前散点图范围内的数据更新边缘直方图。

    • 数据提示 - 将鼠标悬停在散点图或边缘直方图上以显示数据提示。

在 R2018b 中推出