MATLAB - 散点图



散点图是一种数据可视化类型,它将单个数据点显示为点。它们有助于显示两个连续变量之间的关系,例如身高和体重,或突出数据中的集群或模式。

图上的每个点代表一个数据点,它在 x 轴上的位置对应于一个变量,它在 y 轴上的位置对应于另一个变量。散点图对于识别数据中的趋势、模式和异常值特别有用。在 MATLAB 中,您可以使用 scatter 函数创建散点图。

语法

scatter(x,y)
scatter(x,y,sz)
scatter(x,y,sz,c)
scatter(___,"filled")
scatter(___,mkr)
scatter(tbl,xvar,yvar)
scatter(tbl,xvar,yvar,"filled")

语法的详细解释如下:

scatter(x,y) - scatter(x, y) 函数生成一个散点图,其中圆形标记根据向量 x 和 y 中的值进行定位。对于一组坐标,请确保 x 和 y 是长度相同的向量。要在单个坐标系上绘制多组坐标,请将 x 或 y 作为矩阵输入。

scatter(x,y,sz) - 函数定义散点图中圆圈的大小。要使所有圆圈大小相同,请将 sz 设置为单个值。对于不同的圆圈大小,请对 sz 使用向量或矩阵。

scatter(x,y,sz,c) - 设置散点图中圆圈的颜色。您可以为所有圆圈选择一种颜色或具有不同的颜色。例如,要将所有圆圈绘制为红色,请将 c 设置为“red”。

scatter(___,"filled") - 此处,scatter 函数的“filled”选项填充圆圈。此选项可与我们在上述语法中描述的任何输入参数组合一起使用。

scatter(___,mkr) - 语法允许您指定散点图的标记类型。

scatter(tbl,xvar,yvar) - 函数绘制表格 tbl 中的变量 xvar 和 yvar。要绘制单个数据集,请选择一个变量作为 xvar,另一个变量作为 yvar。对于多个数据集,为 xvar、yvar 或两者都选择多个变量。如果两个参数都包含多个变量,则它们必须具有相同的长度。

scatter(tbl,xvar,yvar,"filled") - 将绘制表格中指定的变量,并使用填充圆圈。

散点图绘制示例

让我们看看根据上面讨论的语法绘制散点图的示例。

示例 1:使用 scatter(x,y)

上述语法的代码如下:

x = rand(1, 100);
y = rand(1, 100);
scatter(x, y);

在此示例中,x 和 y 是随机值的向量,每个向量包含 100 个元素。scatter(x, y) 函数使用这些值创建一个散点图,其中每个点都由一个圆形标记表示。

当您在 matlab 命令窗口中执行相同操作时,输出为:

using scatter

示例 2:使用 scatter(x,y,sz)

我们对上述语法的代码如下:

x = rand(1, 100);
y = rand(1, 100);
sz = 50 * rand(1, 100);
scatter(x, y, sz);

在此示例中,sz 是一个包含 100 个随机值的向量,这些值表示散点图中圆圈的大小。通过将 sz 指定为 scatter 函数的第三个参数,每个圆圈都将以对应于 sz 向量中对应索引处的值的大小绘制。这使您可以创建一个散点图,其中每个圆圈的大小由一组单独的值确定。

当您在 matlab 命令窗口中执行相同操作时,输出为:

scatter x y sz

示例 3:使用 scatter(x,y,sz,c)

上述语法的代码如下:

x = rand(1, 100);
y = rand(1, 100);
sz = 50 * rand(1, 100);
c = rand(1, 100);
scatter(x, y, sz, c);

在此示例中,c 是一个包含 100 个随机值的向量,这些值表示散点图中圆圈的颜色。通过将 c 指定为 scatter 函数的第四个参数,每个圆圈都将以对应于 c 向量中对应索引处的值的颜色绘制。

scatter(x,y,sz,c)

示例 4:使用 scatter(___,"filled")

上述语法的代码为:

x = rand(1, 100);
y = rand(1, 100);
scatter(x, y, 'filled');

在此示例中,“filled”选项与 scatter 函数一起使用以填充散点图中的圆圈。此选项可与之前描述的任何输入参数组合一起使用,允许您自定义图形的外观,同时填充圆圈。

当您在 matlab 命令窗口中执行代码时,输出为:

scatter filled

示例 5:使用 scatter(___,mkr)

上述语法的代码为:

x = rand(1, 100); 
y = rand(1, 100);
scatter(x, y, 'd');

在此示例中,“d”参数用作 scatter 函数的标记类型,它指定应为散点图中的每个数据点使用菱形标记。您可以将“d”替换为其他标记类型,例如“o”表示圆形、“s”表示正方形、“+”表示加号等,以自定义图形中标记的外观。

当您在 matlab 命令窗口中执行代码时,输出为:

scatter mkr

示例 6:使用 scatter(tbl,xvar,yvar)

上述语法的代码为:

data = rand(10, 2);
tbl = array2table(data, 'VariableNames', {'x', 'y'});
scatter(tbl, 'x', 'y');

在此示例中,tbl 是一个包含两个变量 x 和 y 的表格。行 tbl = array2table(data, 'VariableNames', {'x', 'y'}); 将数据数组转换为一个名为“x”和“y”的两个变量的表格 tbl。scatter(tbl, 'x', 'y') 函数用于创建这些变量的散点图。

当您在 matlab 命令窗口中执行代码时,输出为:

scatter tbl

示例 7:使用 scatter(tbl,xvar,yvar,"filled")

上述语法的代码为:

data = rand(10, 2);
tbl = array2table(data, 'VariableNames', {'x', 'y'});
scatter(tbl, 'x', 'y', 'filled');

在此示例中,tbl 是一个包含两个变量 x 和 y 的表格。scatter(tbl, 'x', 'y', 'filled') 函数用于创建这些变量的散点图,并使用填充圆圈。“filled”参数指定散点图中的标记应填充。

当您在 matlab 命令窗口中执行相同操作时,输出为:

scatter tbl filled

按组绘制散点图

按组绘制散点图是指根据分类变量对数据点进行分组或着色的散点图。这种类型的图形有助于可视化两个连续变量之间的关系,同时还显示数据如何划分为不同的组。每组在散点图中都由不同的颜色或标记样式表示,从而更容易比较组并识别任何模式或趋势。

在 MATLAB 中,可以使用 gscatter() 函数创建按组绘制的散点图。此函数允许您在散点图中绘制多个数据点组,每组都由不同的颜色或标记样式表示。

语法

gscatter(x,y,g)
gscatter(x,y,g,clr,sym,siz)
gscatter(x,y,g,clr,sym,siz,doleg)
gscatter(x,y,g,clr,sym,siz,doleg,xnam,ynam)

语法的详细解释如下:

gscatter(x,y,g) - 函数生成一个散点图,其中由 x 和 y 表示的数据点根据 g 中的值进行分组。x 和 y 都应为长度相同的向量。

gscatter(x,y,g,clr,sym,siz) - 函数允许您自定义散点图中每组的标记颜色 (clr)、符号 (sym) 和大小 (siz)。

gscatter(x,y,g,clr,sym,siz,doleg) − 该函数用于确定图形上是否显示图例。默认情况下,gscatter 会创建图例。

gscatter(x,y,g,clr,sym,siz,doleg,xnam,ynam) − 该函数允许您为 x 轴 (xnam) 和 y 轴 (ynam) 指定标签。如果您不提供 xnam 和 ynam,并且 x 和 y 输入是具有名称的变量,则 gscatter 将使用这些变量名称作为轴标签。

让我们看看上面讨论的每种语法的示例。

示例 1:使用 gscatter(x,y,g)

上述语法的代码如下:

x = randn(100, 1);
y = randn(100, 1);
g = randi([1, 3], 100, 1);

gscatter(x, y, g);

在此示例中,gscatter 用于创建 x 与 y 的散点图,其中数据点根据 g 中的值进行分组。每个组由不同的颜色表示,并在图中添加图例以指示哪种颜色对应于哪个组。

当您在 matlab 命令窗口中执行相同操作时,输出为:

gscatter

示例 2:使用 gscatter(x,y,g,clr,sym,siz)

上述语法的代码为:

x = randn(100, 1);
y = randn(100, 1);
g = randi([1, 3], 100, 1);
clr = ['r', 'g', 'b'];
sym = ['o', 's', 'd'];
siz = [20, 30, 40];
gscatter(x, y, g, clr, sym, siz);

在此示例中,gscatter 用于创建 x 与 y 的散点图,其中数据点根据 g 中的值进行分组。clr、sym 和 siz 向量为每个组定义自定义标记属性(颜色、符号和大小)。散点图将使用指定的颜色、标记符号和标记大小显示每个组。

执行代码后,输出为 −

gscatter clr

示例 3:使用 gscatter(x,y,g,clr,sym,siz,doleg)

上述语法的代码为:

x = randn(100, 1);
y = randn(100, 1);
g = randi([1, 3], 100, 1);
clr = ['r', 'g', 'b'];
sym = ['o', 's', 'd'];
siz = [20, 30, 40];
gscatter(x, y, g, clr, sym, siz, 'off');

在此示例中,gscatter 用于创建 x 与 y 的散点图,其中数据点根据 g 中的值进行分组。clr、sym 和 siz 向量为每个组定义自定义标记属性(颜色、符号和大小)。doleg 的“off”参数指定图中不应显示图例。

当您在 matlab 命令窗口中执行相同操作时,输出为:

gscatter sym

示例 4:使用 gscatter(x,y,g,clr,sym,siz,doleg,xnam,ynam)

上述语法的代码为:

x = randn(100, 1);
y = randn(100, 1);
g = randi([1, 3], 100, 1);
clr = ['r', 'g', 'b'];
sym = ['o', 's', 'd'];
siz = [20, 30, 40];
xnam = 'X-axis Label';
ynam = 'Y-axis Label';
gscatter(x, y, g, clr, sym, siz, 'on', xnam, ynam);

在此示例中,gscatter 用于创建 x 与 y 的散点图,其中数据点根据 g 中的值进行分组。clr、sym 和 siz 向量为每个组定义自定义标记属性(颜色、符号和大小)。doleg 的“on”参数指定图中应显示图例。xnam 和 ynam 参数分别指定 x 轴和 y 轴的自定义标签。如果您不提供 xnam 和 ynam,并且 x 和 y 输入是具有名称的变量,则 gscatter 将使用这些变量名称作为轴标签。

当您在 matlab 命令窗口中执行代码时,输出为:

xnam ynam
广告