Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

bubblechart

气泡图

自 R2020b 起

  • Bubble chart

说明

向量和矩阵数据

示例

bubblechart(x,y,sz) 在向量 xy 指定的位置显示彩色圆形标记(气泡),气泡大小由 sz 指定。

  • 要绘制一组坐标,请将 xysz 指定为等长向量。

  • 要在同一组坐标轴上绘制多组坐标,请将 xysz 中的至少一个指定为矩阵。

示例

bubblechart(x,y,sz,c) 指定气泡的颜色。您可以为所有气泡指定一种颜色,也可以更改颜色。例如,您可以通过将 c 指定为 "red" 来绘制所有红色气泡。

表数据

示例

bubblechart(tbl,xvar,yvar,sizevar) 绘制表 tbl 中的变量 xvaryvar,并使用变量 sizevar 表示气泡大小。要绘制一个数据集,请为 xvaryvarsizevar 各指定一个变量。要绘制多个数据集,请为其中至少一个参数指定多个变量。对于指定多个变量的参数,指定的变量数目必须相同。

示例

bubblechart(tbl,xvar,yvar,sizevar,cvar) 使用在变量 cvar 中指定的颜色绘制表中指定的变量。要为多个数据集指定颜色,请将 cvar 指定为多个变量。变量数目必须与数据集的数目匹配。

其他选项

示例

bubblechart(ax,___) 在目标坐标区 ax 中显示气泡图。在指定所有其他输入参数之前指定坐标区。

示例

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

示例

bc = bubblechart(___) 返回 BubbleChart 对象。创建图后,使用 bc 修改图属性。有关属性列表,请参阅 BubbleChart 属性

示例

全部折叠

将气泡坐标定义为向量 xy。将 sz 定义为指定气泡大小的向量。然后创建一个由 xy 定义的气泡图。

x = 1:20;
y = rand(1,20);
sz = rand(1,20);
bubblechart(x,y,sz);

Figure contains an axes object. The axes object contains an object of type bubblechart.

将气泡坐标定义为向量 xy。将 sz 定义为指定气泡大小的向量。然后创建一个由 xy 定义的气泡图,并将颜色指定为红色。默认情况下,气泡是部分透明的。

x = 1:20;
y = rand(1,20);
sz = rand(1,20);
bubblechart(x,y,sz,'red');

Figure contains an axes object. The axes object contains an object of type bubblechart.

对于自定义颜色,可以指定 RGB 三元组或十六进制颜色代码。例如,十六进制颜色代码 '#7031BB' 指定紫色。

bubblechart(x,y,sz,'#7031BB');

Figure contains an axes object. The axes object contains an object of type bubblechart.

您也可以为每个气泡指定一种不同颜色。例如,指定一个向量,以从图窗的颜色图中选择颜色。

c = 1:20;
bubblechart(x,y,sz,c)

Figure contains an axes object. The axes object contains an object of type bubblechart.

将气泡坐标定义为向量 xy。将 sz 定义为指定气泡大小的向量。然后创建一个由 xy 定义的气泡图。默认情况下,气泡 60% 不透明,边完全不透明,颜色相同。

x = 1:20;
y = rand(1,20);
sz = rand(1,20);
bubblechart(x,y,sz);

Figure contains an axes object. The axes object contains an object of type bubblechart.

您可以通过分别设置 MarkerFaceAlphaMarkerEdgeColor 属性来自定义不透明度和轮廓颜色。设置属性的一种方法是在创建图时指定名称-值对组参数。例如,您可以通过将 MarkerFaceAlpha 值设置为 0.20 来指定 20% 的不透明度。

bc = bubblechart(x,y,sz,'MarkerFaceAlpha',0.20);

Figure contains an axes object. The axes object contains an object of type bubblechart.

如果通过调用带返回参数的 bubblechart 函数来创建图,则可以在创建图后使用返回参数来设置图的属性。例如,您可以将轮廓颜色更改为紫色。

bc.MarkerEdgeColor = [0.5 0 0.5];

Figure contains an axes object. The axes object contains an object of type bubblechart.

定义一个数据集,它显示某大都市地区不同城镇中某种毒素的污染水平。将 towns 定义为每个城镇的人口数。将 nsites 定义为对应城镇中工业场地的数量。将 levels 定义为城镇中的污染水平。然后在带轴标签的气泡图中显示数据。调用 bubblesize 函数来减小大小,并添加气泡图例来显示气泡大小和总体之间的关系。

towns = randi([25000 500000],[1 30]);
nsites = randi(10,1,30);
levels = (3 * nsites) + (7 * randn(1,30) + 20);

% Display bubble chart with axis labels and legend
bubblechart(nsites,levels,towns)
xlabel('Number of Industrial Sites')
ylabel('Contamination Level')
bubblesize([5 30])
bubblelegend('Town Population','Location','eastoutside')

Figure contains an axes object and an object of type bubblelegend. The axes object with xlabel Number of Industrial Sites, ylabel Contamination Level contains an object of type bubblechart.

当在同一坐标区中显示多个数据集时,可以包含多个图例。要管理图例的对齐,请在分块图布局中创建图。

创建两个数据集,并将它们绘制在分块图布局内的同一坐标区对象中。

x = 1:20;
y1 = rand(1,20);
y2 = rand(1,20);
sz1 = randi([20 500],[1,20]);
sz2 = randi([20 500],[1,20]);

% Plot data in a tiled chart layout
t = tiledlayout(1,1);
nexttile
bubblechart(x,y1,sz1)
hold on
bubblechart(x,y2,sz1)
hold off

Figure contains an axes object. The axes object contains 2 objects of type bubblechart.

添加说明气泡大小的气泡图例,并添加另一个用于说明颜色的图例。带返回参数调用 bubblelegendlegend 函数来存储每个图例对象。通过将每个对象的 Layout.Tile 属性设置为 'east',将图例移至分块图布局的右外侧图块。

blgd = bubblelegend('Population');
lgd = legend('Springfield','Fairview');
blgd.Layout.Tile = 'east';
lgd.Layout.Tile = 'east';

Figure contains an axes object. The axes object contains 2 objects of type bubblechart. These objects represent Springfield, Fairview.

绘制表中数据的一种便捷方法是将表传递给 bubblechart 函数,并指定要绘制的变量。例如,将 patients.xls 以表 tbl 形式读取。通过将 tbl 作为第一个参数传递给 bubblechart 函数,后跟变量名称,绘制 SystolicDiastolicWeight 变量。默认情况下,轴标签与变量名称匹配。

tbl = readtable('patients.xls');
bubblechart(tbl,'Systolic','Diastolic','Weight');

Figure contains an axes object. The axes object with xlabel Systolic, ylabel Diastolic contains an object of type bubblechart.

您也可以同时绘制多个变量。例如,通过将 yvar 参数指定为元胞数组 {'Systolic','Diastolic'},绘制两个血压变量对 Height 变量的图。将气泡大小的范围更改为介于 520 磅之间。然后,添加一个图例。图例标签与变量名称匹配。

bubblechart(tbl,'Height',{'Systolic','Diastolic'},'Weight');
bubblesize([5 20])
legend

Figure contains an axes object. The axes object with xlabel Height contains 2 objects of type bubblechart.

当您调用 bubblechart 时,可以通过指定 cvar 参数绘制表中数据并自定义颜色。

例如,创建一个包含四个随机数变量的表,并绘制 XY 变量。气泡大小根据 Sz 变量而改变,颜色根据 Colors 变量而改变。

tbl = table(randn(15,1)-10,randn(15,1)+10,rand(15,1),rand(15,1), ...
  'VariableNames',{'X','Y','Sz','Colors'});

bubblechart(tbl,'X','Y','Sz','Colors');

Figure contains an axes object. The axes object with xlabel X, ylabel Y contains an object of type bubblechart.

定义两个数据集,它们显示某大都市地区东西两侧不同城镇中某种毒素的污染水平。将 towns1towns2 定义为城镇人口数。将 nsites1nsites2 定义为对应城镇中工业场地的数量。然后将 levels1levels2 定义为城镇中的污染水平。

towns1 = randi([25000 500000],[1 30]);
towns2 = towns1/3;
nsites1 = randi(10,1,30);
nsites2 = randi(10,1,30);
levels1 = (5 * nsites2) + (7 * randn(1,30) + 20);
levels2 = (3 * nsites1) + (7 * randn(1,30) + 20);

创建一个分块图布局,以便并排可视化数据。然后在第一个图块中创建一个坐标区对象,并绘制城市西侧的数据。添加标题和轴标签。然后,在第二个图块中重复以上过程来绘制东侧数据。

tiledlayout(1,2,'TileSpacing','compact')

% West side
ax1 = nexttile;
bubblechart(ax1,nsites1,levels1,towns1);
title('West Side')
xlabel('Number of Industrial Sites')

% East side
ax2 = nexttile;
bubblechart(ax2,nsites2,levels2,towns2);
title('East Side')
xlabel('Number of Industrial Sites')
ylabel('Contamination Level')

Figure contains 2 axes objects. Axes object 1 with title West Side, xlabel Number of Industrial Sites contains an object of type bubblechart. Axes object 2 with title East Side, xlabel Number of Industrial Sites, ylabel Contamination Level contains an object of type bubblechart.

缩小所有气泡大小,以便更容易看到所有气泡。在本例中,将直径范围更改为介于 530 磅之间。

bubblesize(ax1,[5 30])
bubblesize(ax2,[5 30])

Figure contains 2 axes objects. Axes object 1 with title West Side, xlabel Number of Industrial Sites contains an object of type bubblechart. Axes object 2 with title East Side, xlabel Number of Industrial Sites, ylabel Contamination Level contains an object of type bubblechart.

西区城镇的规模是东区城镇的三倍,但在前面的图中,气泡的大小并没有反映此信息。这是因为最小和最大的气泡映射到每个坐标区中最小和最大的数据点。要以相同的比例显示气泡,请定义名为 alltowns 的向量,其中包括城市两侧各自的人口数。使用 bubblelim 函数重置两个图的缩放比例。接下来,使用 xlimylim 函数显示具有相同 xy 轴范围的图。

% Adjust scale of the bubbles
alltowns = [towns1 towns2];
newlims = [min(alltowns) max(alltowns)];
bubblelim(ax1,newlims)
bubblelim(ax2,newlims)

% Adjust x-axis limits
allx = [xlim(ax1) xlim(ax2)];
xmin = min(allx);
xmax = max(allx);
xlim([ax1 ax2],[xmin xmax]);

% Adjust y-axis limits
ally = [ylim(ax1) ylim(ax2)];
ymin = min(ally);
ymax = max(ally);
ylim([ax1 ax2],[ymin ymax]);

Figure contains 2 axes objects. Axes object 1 with title West Side, xlabel Number of Industrial Sites contains an object of type bubblechart. Axes object 2 with title East Side, xlabel Number of Industrial Sites, ylabel Contamination Level contains an object of type bubblechart.

输入参数

全部折叠

x 坐标,指定为标量、向量或矩阵。x 的大小和形状取决于数据的形状。下表说明了最常见的情况。

气泡图的类型如何指定坐标
单个气泡

xysz 指定为标量。例如:

bubblechart(1,2,10)

一组气泡

指定 xysz 为相同长度的行向量或列向量的任意组合。例如:

x = [1 2 3 4];
y = [4; 5; 6; 7];
sz = [12 13 14 15];
bubblechart(x,y,sz)

多组气泡

如果所有数据集共用相同的 x 或 y 坐标,请将共用坐标指定为一个向量,将其他坐标指定为一个矩阵。该向量的长度必须与该矩阵的维度之一相匹配。例如,绘制两个共用相同 x 坐标和大小值的数据集。

x = [1 2 3 4];
y = [4 5 6 7; 7 8 9 10];
sz = [1 2 3 4];
bubblechart(x,y,sz)
如果矩阵为方阵,bubblechart 会为矩阵中的每一列绘制一组单独的气泡。

也可以指定 xysz 为相同大小的矩阵。在本例中,bubblechart 绘制矩阵的列。例如,绘制以下两个数据集。

x = [1 1; 2 2; 3 3; 4 4];
y = [4 7; 5 8; 6 9; 7 10];
sz = [1 1; 2 2; 3 3; 4 4];
bubblechart(x,y,sz)

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

y 坐标,指定为标量、向量或矩阵。y 的大小和形状取决于数据的形状。下表说明了最常见的情况。

气泡图的类型如何指定坐标
单个气泡

xysz 指定为标量。例如:

bubblechart(1,2,10)

一组气泡

指定 xysz 为相同长度的行向量或列向量的任意组合。例如:

x = [1 2 3 4];
y = [4; 5; 6; 7];
sz = [12 13 14 15];
bubblechart(x,y,sz)

多组气泡

如果所有数据集共用相同的 x 或 y 坐标,请将共用坐标指定为一个向量,将其他坐标指定为一个矩阵。该向量的长度必须与该矩阵的维度之一相匹配。例如,绘制两个共用相同 x 坐标和大小值的数据集。

x = [1 2 3 4];
y = [4 5 6 7; 7 8 9 10];
sz = [1 2 3 4];
bubblechart(x,y,sz)
如果矩阵为方阵,bubblechart 会为矩阵中的每一列绘制一组单独的气泡。

也可以指定 xysz 为相同大小的矩阵。在本例中,bubblechart 绘制矩阵的列。例如,绘制以下两个数据集。

x = [1 1; 2 2; 3 3; 4 4];
y = [4 7; 5 8; 6 9; 7 10];
sz = [1 1; 2 2; 3 3; 4 4];
bubblechart(x,y,sz)

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

相对气泡大小,指定为数值标量、向量或矩阵。

sz 值控制气泡大小的相对分布。默认情况下,bubblechart 依据坐标区中所有气泡图的 sz 值范围线性映射所有气泡面积范围。如果要进一步控制绝对气泡大小以及它们如何在 sz 值范围内映射,请参阅 bubblesizebubblelim

您是否将 sz 指定为标量、向量或矩阵取决于您如何指定 xy 以及您所需的图外观。下表说明了最常见的情况。

气泡图的类型xy sz示例

一组气泡

相同长度的向量

xy 长度相同的向量

xysz 指定为向量。

x = [1 2 3 4];
y = [4 5 6 7];
sz = [80 150 700 50];
bubblechart(x,y,sz)

具有不同坐标和气泡大小的多组气泡

xy 中有至少一个是用于绘制多个数据集的矩阵

xy 矩阵大小相同的矩阵

x 指定为向量,将 ysz 指定为矩阵。

x = [1 2 3 4];
y = [1 6; 3 8; 2 7; 4 9];
sz = [80 30; 150 900; 50 2000; 200 350];
bubblechart(x,y,sz)

多组气泡,它们共用相同的坐标,但每个数据集的大小不同

相同长度的向量

有至少一个维度与 xy 长度匹配的矩阵

xy 指定为向量,将 sz 指定为矩阵。

x = [1 2 3 4];
y = [5 6 7 8];
sz = [80 30; 150 900; 50 500; 200 350];
bubblechart(x,y,sz)

多组气泡,其中坐标在至少一个维度上有不同,但大小在数据集之间共享

xy 中有至少一个是用于绘制多个数据集的矩阵

其元素数与每个数据集中的气泡数相同的向量

x 指定为向量,将 y 指定为矩阵,将 sz 指定为向量。

x = [1 2 3 4];
y = [1 6; 3 8; 2 7; 4 9];
sz = [80 150 200 350];
bubblechart(x,y,sz)

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

气泡颜色,指定为颜色名称、RGB 三元组、RGB 三元组矩阵或由颜色图索引组成的向量。

  • 颜色名称 - 颜色名称(如 "red")或短名称(如 "r")。

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

  • RGB 三元组矩阵 - 三列矩阵,其中的每一行均为一个 RGB 三元组。

  • 由颜色图索引组成的向量 - 数值向量,其长度与 xy 向量相同。

指定颜色的方式取决于所需的颜色方案以及是绘制一组气泡还是多组气泡。下表说明了最常见的情况。

颜色方案指定颜色的方式示例

对所有气泡使用一种颜色。

从下表中指定一种颜色名称或短名称,或指定一个 RGB 三元组。

显示一组气泡,并将颜色指定为 "red"

x = [1 2 3 4];
y = [2 5 3 6];
sz = [1 2 3 4];
bubblechart(x,y,sz,"red")

显示两组气泡,并使用 RGB 三元组 [1 0 0] 将颜色指定为红色。

x = [1 2 3 4];
y = [2 5; 1 2; 8 4; 7 9];
sz = [1 2; 3 4; 5 6; 7 8];
bubblechart(x,y,sz,[1 0 0])

使用颜色图为每个气泡指定不同颜色。

指定一个由数字组成的行向量或列向量。这些数字映射到当前颜色图数组中。最小值映射到颜色图中的第一行,最大值映射到最后一行。中间值线性映射到中间行。

如果您的图有三个气泡,请指定一个列向量,以确保这些值被解释为颜色图索引。

仅当 xysz 均为向量时,才能使用此方法。

创建一个向量 c,它指定四个颜色图索引。使用当前颜色图中的颜色显示四个气泡。然后,将颜色图更改为 winter

c = [1 2 3 4];
x = [1 2 3 4];
y = [5 6 7 8];
sz = [1 2 3 4];
bubblechart(x,y,sz,c)
colormap(gca,"winter")

为每个气泡创建一种自定义颜色。

指定一个由 RGB 三元组组成的 m×3 矩阵,其中 m 是气泡数。

仅当 xysz 均为向量时,才能使用此方法。

创建一个矩阵 c,它为绿色、红色、灰色和紫色指定 RGB 三元组。然后用这些颜色显示四个气泡。

c = [0 1 0; 1 0 0; 0.5 0.5 0.5; 0.6 0 1];
x = [1 2 3 4];
y = [5 6 7 8];
sz = [1 2 3 4];
bubblechart(x,y,sz,c)

为每个数据集创建一种不同颜色。

指定一个由 RGB 三元组组成的 n×3 矩阵,其中 n 为数据集个数。

仅当 xysz 中有至少一个是矩阵时,才能使用此方法。

创建一个包含两个 RGB 三元组的矩阵 c。然后使用这些颜色显示两组气泡。

c = [1 0 0; 0.6 0 1];
x = [1 2 3 4];
y = [2 5; 1 2; 8 4; 11 9];
sz = [1 1; 2 2; 3 3; 4 4];
bubblechart(x,y,sz,c)

常见颜色的颜色名称和 RGB 三元组

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

Sample of the color red

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

Sample of the color green

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

Sample of the color blue

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

Sample of the color cyan

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

Sample of the color magenta

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

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

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

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

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]"#D95319"

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]"#EDB120"

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]"#7E2F8E"

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]"#77AC30"

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]"#4DBEEE"

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]"#A2142F"

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

包含要绘制的数据的源表,指定为表或时间表。

包含 x 坐标的表变量,指定为一个或多个表变量索引。

指定表索引

使用以下任一索引方案指定所需的一个或多个变量。

索引方案示例

变量名称:

  • 字符串、字符向量或元胞数组。

  • pattern 对象。

  • "A"'A' - 名为 A 的变量

  • ["A","B"]{'A','B'} - 两个名为 AB 的变量

  • "Var"+digitsPattern(1) - 变量名为 "Var" 后跟一个数字

变量索引:

  • 引用变量在表中位置的索引编号。

  • 由数字组成的向量。

  • 逻辑向量。通常,此向量的长度与变量的数目相同,但可以省略尾部的 0false 值。

  • 3 - 表中的第三个变量

  • [2 3] - 表中的第二个和第三个变量

  • [false false true] - 第三个变量

变量类型:

  • vartype 下标,用于选择指定类型的变量。

  • vartype("categorical") - 包含分类值的所有变量

绘制您的数据

您指定的表变量可以包含数值、分类、日期时间或持续时间值。

要绘制一个数据集,请为 xvaryvarsizevar 和(可选的)cvar 各指定一个变量。例如,将 Patients.xls 读入表 tbl 中。绘制 HeightWeight 变量,气泡大小根据 Age 变量而改变。

tbl = readtable('Patients.xls');
bubblechart(tbl,'Height','Weight','Age')

要一起绘制多个数据集,请为 xvaryvarsizevarcvar 中的至少一个指定多个变量。如果为多个参数指定多个变量,则为每个参数指定的变量数目必须相同。

例如,在 x 轴上绘制 Weight 变量,在 y 轴上绘制 SystolicDiastolic 变量。为气泡大小指定 Age 变量。

bubblechart(tbl,'Weight',{'Systolic','Diastolic'},'Age')

您还可以对表变量使用不同索引方案。例如,将 xvar 指定为变量名称,将 yvar 指定为索引编号,将 sizevar 指定为逻辑向量。

bubblechart(tbl,'Height',6,[false false true])

包含 y 坐标的表变量,指定为一个或多个表变量索引。

指定表索引

使用以下任一索引方案指定所需的一个或多个变量。

索引方案示例

变量名称:

  • 字符串、字符向量或元胞数组。

  • pattern 对象。

  • "A"'A' - 名为 A 的变量

  • ["A","B"]{'A','B'} - 两个名为 AB 的变量

  • "Var"+digitsPattern(1) - 变量名为 "Var" 后跟一个数字

变量索引:

  • 引用变量在表中位置的索引编号。

  • 由数字组成的向量。

  • 逻辑向量。通常,此向量的长度与变量的数目相同,但可以省略尾部的 0false 值。

  • 3 - 表中的第三个变量

  • [2 3] - 表中的第二个和第三个变量

  • [false false true] - 第三个变量

变量类型:

  • vartype 下标,用于选择指定类型的变量。

  • vartype("categorical") - 包含分类值的所有变量

绘制您的数据

您指定的表变量可以包含数值、分类、日期时间或持续时间值。

要绘制一个数据集,请为 xvaryvarsizevar 和(可选的)cvar 各指定一个变量。例如,将 Patients.xls 读入表 tbl 中。绘制 HeightWeight 变量,气泡大小根据 Age 变量而改变。

tbl = readtable('Patients.xls');
bubblechart(tbl,'Height','Weight','Age')

要一起绘制多个数据集,请为 xvaryvarsizevarcvar 中的至少一个指定多个变量。如果为多个参数指定多个变量,则为每个参数指定的变量数目必须相同。

例如,在 x 轴上绘制 Weight 变量,在 y 轴上绘制 SystolicDiastolic 变量。为气泡大小指定 Age 变量。

bubblechart(tbl,'Weight',{'Systolic','Diastolic'},'Age')

您还可以对表变量使用不同索引方案。例如,将 xvar 指定为变量名称,将 yvar 指定为索引编号,将 sizevar 指定为逻辑向量。

bubblechart(tbl,'Height',6,[false false true])

包含气泡大小数据的表变量,指定为一个或多个表变量索引。

指定表索引

使用以下任一索引方案指定所需的一个或多个变量。

索引方案示例

变量名称:

  • 字符串、字符向量或元胞数组。

  • pattern 对象。

  • "A"'A' - 名为 A 的变量

  • ["A","B"]{'A','B'} - 两个名为 AB 的变量

  • "Var"+digitsPattern(1) - 变量名为 "Var" 后跟一个数字

变量索引:

  • 引用变量在表中位置的索引编号。

  • 由数字组成的向量。

  • 逻辑向量。通常,此向量的长度与变量的数目相同,但可以省略尾部的 0false 值。

  • 3 - 表中的第三个变量

  • [2 3] - 表中的第二个和第三个变量

  • [false false true] - 第三个变量

变量类型:

  • vartype 下标,用于选择指定类型的变量。

  • vartype("categorical") - 包含分类值的所有变量

绘制您的数据

您指定的表变量可以包含任何类型的数值。

如果要绘制一个数据集,请为 sizevar 指定一个变量。例如,将 Patients.xls 读入表 tbl 中。绘制 HeightWeight 变量,气泡大小根据 Age 变量而改变。

tbl = readtable('Patients.xls');
bubblechart(tbl,'Height','Weight','Age')

如果要绘制多个数据集,可以为 xvaryvarsizevar 或可选的 cvar 中的至少一个指定多个变量。如果为多个参数指定多个变量,则为每个参数指定的变量数目必须相同。

例如,在 x 轴上绘制 Weight 变量,在 y 轴上绘制 Height 变量。为气泡大小指定 SystolicDiastolic 变量。生成的图显示两组气泡,其坐标相同但气泡大小不同。

bubblechart(tbl,'Weight','Height',{'Systolic','Diastolic'})

包含气泡颜色数据的表变量,指定为一个或多个表变量索引。

指定表索引

使用以下任一索引方案指定所需的一个或多个变量。

索引方案示例

变量名称:

  • 字符串、字符向量或元胞数组。

  • pattern 对象。

  • "A"'A' - 名为 A 的变量

  • ["A","B"]{'A','B'} - 两个名为 AB 的变量

  • "Var"+digitsPattern(1) - 变量名为 "Var" 后跟一个数字

变量索引:

  • 引用变量在表中位置的索引编号。

  • 由数字组成的向量。

  • 逻辑向量。通常,此向量的长度与变量的数目相同,但可以省略尾部的 0false 值。

  • 3 - 表中的第三个变量

  • [2 3] - 表中的第二个和第三个变量

  • [false false true] - 第三个变量

变量类型:

  • vartype 下标,用于选择指定类型的变量。

  • vartype("categorical") - 包含分类值的所有变量

绘制您的数据

您指定的表变量可以包含任何数值类型的值。每个变量可以是:

  • 线性映射到当前颜色图中的一列数字。

  • 由 RGB 三元组组成的一个三列数组。RGB 三元组是包含三个元素的向量,其元素值指定特定颜色的红、绿和蓝分量的强度。强度必须处于范围 [0,1] 中。例如,[0.5 0.7 1] 指定浅蓝色。

如果要绘制一个数据集,请为 cvar 指定一个变量。例如,创建一个包含六个随机数变量的表。绘制 X1Y 变量。气泡大小根据 SZ 变量而改变,颜色根据 Color1 变量而改变。

tbl = table(randn(50,1)-5,randn(50,1)+5,rand(50,1), ...
  rand(50,1),rand(50,1),rand(50,1),...
  'VariableNames',{'X1','X2','Y','SZ','Color1','Color2'});

bubblechart(tbl,'X1','Y','SZ','Color1')

如果要绘制多个数据集,可以为 xvaryvarsizevarcvar 中的至少一个指定多个变量。如果为多个参数指定多个变量,则为每个参数指定的变量数目必须相同。

例如,在 x 轴上绘制 X1X2 变量,在 y 轴上绘制 Y 变量。气泡大小根据 SZ 变量而改变。为颜色指定 Color1Color2 变量。结果图显示两组气泡,它们具有相同的 y 坐标和气泡大小,但具有不同的 x 坐标和颜色。

bubblechart(tbl,{'X1','X2'},'Y','SZ',{'Color1','Color2'})

目标坐标区,指定为 AxesPolarAxesGeographicAxes 对象。如果未指定坐标区,则 MATLAB 将在当前坐标区中进行绘制;或如果不存在 Axes 对象,则创建一个对象。

名称-值参数

将可选的参数对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参数名称,Value 是对应的值。名称-值参数必须出现在其他参数之后,但参数对组的顺序无关紧要。

在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。

示例: bubblechart([1 2 3],[4 10 9],[1 2 3],'MarkerFaceColor','red') 创建红色气泡。

注意

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

标记轮廓颜色,指定为 "flat"、RGB 三元组、十六进制颜色代码、颜色名称或短名称。默认值 "flat" 将使用 CData 属性中的颜色。

对于自定义颜色,请指定 RGB 三元组或十六进制颜色代码。

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

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

此外,还可以按名称指定一些常见的颜色。下表列出了命名颜色选项、等效 RGB 三元组和十六进制颜色代码。

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

Sample of the color red

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

Sample of the color green

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

Sample of the color blue

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

Sample of the color cyan

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

Sample of the color magenta

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

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

"none"不适用不适用不适用无颜色

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

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

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]"#D95319"

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]"#EDB120"

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]"#7E2F8E"

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]"#77AC30"

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]"#4DBEEE"

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]"#A2142F"

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

示例: [0.5 0.5 0.5]

示例: "blue"

示例: "#D2F9A7"

标记填充颜色,指定为 'flat''auto'、RGB 三元组、十六进制颜色代码、颜色名称或短名称。'flat' 选项使用 CData 值。'auto' 选项使用与坐标区的 Color 属性相同的颜色。

对于自定义颜色,请指定 RGB 三元组或十六进制颜色代码。

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

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

此外,还可以按名称指定一些常见的颜色。下表列出了命名颜色选项、等效 RGB 三元组和十六进制颜色代码。

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

Sample of the color red

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

Sample of the color green

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

Sample of the color blue

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

Sample of the color cyan

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

Sample of the color magenta

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

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

"none"不适用不适用不适用无颜色

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

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

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]"#D95319"

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]"#EDB120"

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]"#7E2F8E"

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]"#77AC30"

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]"#4DBEEE"

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]"#A2142F"

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

示例: [0.3 0.2 0.1]

示例: 'green'

示例: '#D2F9A7'

标记边的宽度,指定为一个正值(以磅为单位)。

示例: 0.75

标记边的透明度,指定为 [0,1] 范围中的标量或 'flat'。值为 1 表示不透明,值为 0 表示完全透明。介于 0 和 1 之间的值表示半透明。

要为绘图中的每个点设置不同边透明度值,请将 AlphaData 属性设置为与 XData 属性大小相同的向量,并将 MarkerEdgeAlpha 属性设置为 'flat'

标记面透明度,指定为 [0,1] 范围中的标量或 'flat'。值为 1 表示不透明,值为 0 表示完全透明。介于 0 和 1 之间的值表示部分透明。

要为每个点设置一个不同的标记面透明度值,请将 AlphaData 属性设置为与 XData 属性大小相同的向量,并将 MarkerFaceAlpha 属性设置为 'flat'

版本历史记录

在 R2020b 中推出

全部展开