Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

bubblecloud

创建气泡云图

  • Bubble cloud

说明

表数据

bubblecloud(tbl,szvar) 使用表 tbl 中的数据创建气泡云图。将 szvar 指定为包含气泡大小的表变量。例如,您可以指定变量的名称或变量的索引。

气泡云图有助于说明数据集中的元素与整个数据集之间的关系。例如,您可以可视化从不同城市收集的数据,并将每个城市表示为气泡,气泡大小与该城市的值成比例。

示例

bubblecloud(tbl,szvar,labelvar) 在气泡上显示标签。将 labelvar 指定为包含气泡标签的表变量。

示例

bubblecloud(tbl,szvar,labelvar,groupvar) 指定气泡的分组数据。使用组以不同颜色显示多个云。将 groupvar 指定为包含分组数据的变量。

向量数据

bubblecloud(sz) 创建一个气泡云图,其中将气泡大小指定为向量。

示例

bubblecloud(sz,labels) 在气泡上显示标签。将 labels 指定为字符向量元胞数组或长度与 sz 相同的字符串向量。

示例

bubblecloud(sz,labels,groups) 指定气泡的分组数据。使用组以不同颜色显示多个云。将 groups 指定为与 szlabels 长度相同的向量。

其他选项

示例

bubblecloud(___,Name,Value) 使用一个或多个名称-值参数指定其他气泡云属性。在所有其他输入参数后指定属性。有关属性列表,请参阅 BubbleCloud 属性

示例

b = bubblecloud(___) 返回 BubbleCloud 对象。创建图后,使用 b 修改图属性。

示例

全部折叠

创建一个包含三个变量的表。例如,创建一个表,显示美国 10 个州中贴错标签的万圣节服装的数量。在售出的 10000 套公主套装中,有 1000 套误贴怪异的怪物标签。

n = [58 115 81 252 180 124 40 80 50 20]';
loc = ["NJ" "NY" "MA" "OH" "NH" "ME" "CT" "PA" "RI" "VT"]';
plant = ["Plant A" "Plant A" "Plant A" "Plant A" ...
       "Plant A" "Plant A" "Plant A" "Plant B" "Plant B" "Plant B"]';
tbl = table(n,loc,plant,'VariableNames',["Mislabeled" "State" "Manufacturing Plant"])
tbl=10×3 table
    Mislabeled    State    Manufacturing Plant
    __________    _____    ___________________

        58        "NJ"          "Plant A"     
       115        "NY"          "Plant A"     
        81        "MA"          "Plant A"     
       252        "OH"          "Plant A"     
       180        "NH"          "Plant A"     
       124        "ME"          "Plant A"     
        40        "CT"          "Plant A"     
        80        "PA"          "Plant B"     
        50        "RI"          "Plant B"     
        20        "VT"          "Plant B"     

创建一个气泡云,按州可视化贴错标签的服装。

bubblecloud(tbl,"Mislabeled","State")

Figure contains an object of type bubblecloud.

通过指定 groupvar 参数将气泡分成多个组。在本例中,组位于名为 "Manufacturing Plant" 的变量中。

bubblecloud(tbl,"Mislabeled","State","Manufacturing Plant")

Figure contains an object of type bubblecloud.

n 定义为气泡大小的向量,用最受欢迎的冰淇淋口味调查所得的数字表示气泡大小。将 flavs 定义为一个包含口味名称的字符串向量。然后创建一个气泡云,显示最受欢迎的冰淇淋口味的分布情况。

n = [58 115 81 252 200 224 70 120 140];
flavs = ["Rum" "Pumpkin" "Mint" "Vanilla" "Chocolate" ...
    "Strawberry" "Twist" "Coffee" "Cookie"];
bubblecloud(n,flavs)

Figure contains an object of type bubblecloud.

ages 定义为包含偏好每种口味的年龄组的分类向量。通过调用 reordercats 函数指定类别的顺序。然后用按年龄分组的气泡创建一个新气泡云,并将 BubbleCloud 对象返回为 b。当您指定组数据时,默认情况下图会显示图例。通过设置 bLegendTitle 属性,为图例添加标题。

ages = categorical(["40-90+" "5-15" "16-39" "40-90+" ...
   "5-15" "16-39" "5-15" "16-39" "40-90+"]);
ages = reordercats(ages,["5-15" "16-39" "40-90+"] );
b = bubblecloud(n,flavs,ages);
b.LegendTitle = 'Age Range';

Figure contains an object of type bubblecloud.

加载 patients 数据集,用对应的自我评估健康状况值('poor''fair''good'excellent')创建一个包含 20 个患者体重测量值的气泡云。通过指定 FaceColor 名称-值参数自定义气泡的颜色。将 BubbleCloud 对象返回为 b,这样以后就可以设置该对象的属性。

load patients
b = bubblecloud(Weight(1:20),SelfAssessedHealthStatus(1:20), ...
    'FaceColor',[0.3 0.6 0.4]);

Figure contains an object of type bubblecloud.

根据患者是否吸烟将气泡分组。将数据分组后,图例会自动出现在图窗中。指定图例的标题。然后,通过增大图窗的大小并将字体大小设置为 9 磅来保持气泡标签的可见性。

b.GroupData = Smoker(1:20);
b.LegendTitle = "Smoker";
f = gcf;
f.Position([3 4]) = [655 395];
b.FontSize = 9;

Figure contains an object of type bubblecloud.

要用不同颜色可视化各组,请将 FaceColor 属性设置回默认值 'flat'。要使气泡的边缘使用相同的颜色,请将 EdgeColor 属性设置为 'flat'

b.FaceColor = 'flat';
b.EdgeColor = 'flat';

Figure contains an object of type bubblecloud.

要自定义组颜色,请将 ColorOrder 属性设置为包含新颜色的 RGB 三元组的矩阵。

b.ColorOrder = [0.3 0.6 0.4; 0.4 0.3 0.6];

Figure contains an object of type bubblecloud.

您也可以将 BubbleCloud 对象传递给 colororder 函数来设置此属性。使用此函数时,可以将颜色指定为 RGB 三元组、十六进制颜色代码或预定义的颜色名称。例如,为两种颜色指定十六进制颜色代码。

colororder(b,["#E6CC1A"; "#4D9966"])

Figure contains an object of type bubblecloud.

c 定义为分类数组。使用 histounts 函数对分类数据进行分 bin,并返回气泡大小和标签。然后将气泡大小和标签传递给 bubblecloud 函数。

c = categorical(["Pumpkin" "Princess" "Princess" "Princess" "Spooky Monster" ...
    "Spooky Monster" "Spooky Monster" "Spooky Monster" "Spooky Monster"]);
[sz,labels] = histcounts(c);
bubblecloud(sz,labels)

Figure contains an object of type bubblecloud.

输入参数

全部折叠

包含气泡数据的表。该表必须有至少一个指定气泡大小的变量。气泡大小可以包括非负数值、NaNInf 值。图中仅显示大小为正值的气泡。零值、NaNInf 值会被忽略。

该表可选择包括含有以下数据的变量:

  • 气泡标签 - 使用字符向量元胞数组或字符串向量创建此变量。

  • 分组数据 - 使用字符向量元胞数组、字符串向量、分类向量、数值向量或逻辑向量创建此变量。

分组数据对于显示具有不同颜色的多个云非常有用。例如,您可以显示按制造商分组的汽车数据。

气泡大小的表变量,指定为以下值之一:

  • 变量名称 - 包含大小数据的表变量的名称的字符向量或字符串标量。

  • 变量索引 - 包含大小数据的表变量的索引。将索引指定为介于 1 和表中变量数目之间的数字。

  • 逻辑向量 - 逻辑值的向量,其元素数与表中的变量数相同。该向量只能包含一个 true 值。

气泡标签的表变量,指定为以下值之一:

  • 变量名称 - 包含标签的表变量的名称的字符向量或字符串标量。

  • 变量索引 - 包含标签的表变量的索引。将索引指定为介于 1 和表中变量数目之间的数字。

  • 逻辑向量 - 逻辑值的向量,其元素数与表中的变量数相同。该向量只能包含一个 true 值。

气泡组的表变量,指定为以下值之一:

  • 变量名称 - 包含分组数据的表变量的名称的字符向量或字符串标量。

  • 变量索引 - 包含分组数据的表变量的索引。将索引指定为介于 1 和表中变量数目之间的数字。

  • 逻辑向量 - 逻辑值的向量,其元素数与表中的变量数相同。该向量只能包含一个 true 值。

当您指定气泡组时,bubblecloud 会将数据分成具有不同颜色的单独气泡云,并显示图例。颜色由 ColorOrder 属性确定,图例的标题是表中 groupvar 变量的名称。

气泡大小,指定为包含非负值的数值向量。零值、NaNInf 值被忽略。例如,bubblecloud(1:10) 创建 10 个大小为 110 的气泡。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

气泡标签,指定为字符向量元胞数组或字符串向量。元胞数组或字符串向量中的元素数必须与 sz 向量中的元素数相匹配。例如,bubblecloud(1:3,["one" "two" "three"]) 用标签 "one""two""three" 创建三个气泡。

数据类型: cell | string

气泡组,指定为字符向量元胞数组、字符串向量、分类向量或逻辑向量。元素数必须与 sz 向量中的元素数相匹配。例如,bubblecloud(1:3,["one" "two" "three"],["Group1" "Group2" "Group2"]) 创建三个气泡,分成两组。

当您指定气泡组时,bubblecloud 会将您的数据分成具有不同颜色的单独气泡云,并显示不带标题的图例。颜色由 ColorOrder 属性确定。

数据类型: cell | string | categorical | logical

名称-值对组参数

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

示例: bubblecloud(1:10,'FaceColor','red') 创建一个红色气泡云。

注意

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

图标题,指定为字符向量、字符向量元胞数组、字符串数组或分类数组。要创建一个多行标题,请指定字符向量元胞数组或字符串数组。数组中的每个元素是一行文本。

您也可以调用 title 函数为图添加标题。

bubblecloud(rand(1,20))
title("Random Bubbles")

图例标题,指定为字符向量、字符向量元胞数组、字符串数组或分类数组。要创建一个多行标题,请指定字符向量元胞数组或字符串数组。数组中的每个元素是一行文本。

如果在表中指定数据,则默认图例标题是指定组的变量的名称。

气泡填充颜色,指定为下表中的值。

FaceColor说明
'flat'

让 MATLAB® 为每组气泡指定不同颜色。颜色在图的 ColorOrder 属性中定义。

RGB 三元组或十六进制颜色代码

为所有气泡组指定同一种自定义颜色:

  • RGB 三元组 - 三元素行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1] 范围内,例如 [0.4 0.6 0.7]

  • 十六进制颜色代码 - 字符向量或字符串标量,以井号 (#) 开头,后跟三个或六个十六进制数字,范围可以是 0F。这些值不区分大小写。因此,颜色代码 '#FF8800''#ff8800''#F80''#f80' 是等效的。

以下两个表提供一些常见颜色的 RGB 三元组和十六进制颜色代码。

颜色名称或短名称

使用颜色名称(如 'red')或短名称(如 'r')为所有气泡组指定同一种预定义颜色。

下表列出了可用的颜色名称和短名称。

'none'

显示所有没有任何颜色的气泡组。

下表列出了可用的颜色名称和短名称,以及对应的 RGB 三元组和十六进制颜色代码。

颜色名称短名称RGB 三元组十六进制颜色代码外观
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

以下是 MATLAB 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。

RGB 三元组十六进制颜色代码外观
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

气泡边颜色,指定为下表中的一个值。

EdgeColor说明
'flat'

让 MATLAB 为每组气泡指定一种不同的边颜色。颜色在图的 ColorOrder 属性中定义。

RGB 三元组或十六进制颜色代码

为所有气泡组指定同一种自定义边颜色:

  • RGB 三元组 - 三元素行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1] 范围内,例如 [0.4 0.6 0.7]

  • 十六进制颜色代码 - 字符向量或字符串标量,以井号 (#) 开头,后跟三个或六个十六进制数字,范围可以是 0F。这些值不区分大小写。因此,颜色代码 '#FF8800''#ff8800''#F80''#f80' 是等效的。

以下两个表提供一些常见颜色的 RGB 三元组和十六进制颜色代码。

颜色名称或短名称

使用颜色名称(如 'red')或短名称(如 'r')为所有气泡组指定同一种预定义边颜色。

下表列出了可用的颜色名称和短名称。

'none'

显示所有没有任何边颜色的气泡组。

下表列出了可用的颜色名称和短名称,以及对应的 RGB 三元组和十六进制颜色代码。

颜色名称短名称RGB 三元组十六进制颜色代码外观
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

以下是 MATLAB 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。

RGB 三元组十六进制颜色代码外观
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

输出参数

全部折叠

BubbleCloud 对象,它是一个独立可视化。创建图后,使用 b 设置图的属性。

详细信息

全部折叠

独立可视化

独立可视化是出于特殊目的设计的图,其工作方式独立于其他图。与 plotsurf 等其他图不同,独立可视化内置一个预配置的坐标区对象,并且某些自定义不可用。独立可视化还具有以下特性:

  • 它无法与其他图形元素(如线条、补片或曲面)组合。因此,不支持 hold 命令。

  • gca 函数可以将图对象返回为当前坐标区。

  • 您可以将图对象传递给许多 MATLAB 函数,这些函数接受坐标区对象作为输入参数。例如,您可以将图对象传递给 title 函数。

在 R2021a 中推出