MATLAB 中的散点图
本教程将讨论使用 MATLAB 中的 scatter()
函数创建散点图。
使用 MATLAB 中的 scatter()
函数创建散点图
scatter(x,y)
函数在输入向量 x 和 y 指定的位置上创建散点图。默认情况下,scatter()
函数使用圆形标记来绘制给定的数据。例如,让我们使用 scatter()
函数来创建给定数据的散点图。请参阅下面的代码。
clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
scatter(x,y)
输出:
存储在变量 x 和 y 中的数据用于在输出中创建散点图。确保变量 x 和 y 的长度应该相同。否则,MATLAB 将显示错误。默认情况下,scatter()
函数使用圆圈大小和颜色的默认值,但我们可以更改函数的默认属性。例如,要更改圆圈的大小,我们必须将圆圈的大小定义为 scatter()
函数内的第三个参数。例如,让我们更改上图中圆圈的大小。请参阅下面的代码。
clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
scatter(x,y,10)
输出:
上面输出中圆圈的大小与之前散点图中圆圈的大小不同。大小应为正数值或与输入向量 x 和 y 大小相同的向量。如果大小是单个正数值,就像上面的代码一样,它将应用于散点图中存在的所有圆圈。我们还可以使用与输入向量 x 和 y 长度相同的向量为每个圆赋予不同的大小值。例如,让我们改变上面散点图中每个圆圈的大小。请参阅下面的代码。
clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
CSize = 1:100;
scatter(x,y,CSize)
输出:
在上面的输出中,每个圆圈都有不同的大小。我们还可以通过在 scatter()
函数中将其作为第四个参数传递来更改散点图中圆圈的颜色。例如,让我们将上面散点图中圆圈的颜色更改为黑色。请参阅下面的代码。
clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
CSize = 1:100;
scatter(x,y,CSize,[0 0 0])
输出:
在上面的散点图中,圆圈的颜色是黑色,但我们可以通过在 scatter()
函数中输入该颜色的 RGB 值作为第四个参数来赋予它任何颜色。我们还可以通过在 scatter()
函数中将颜色名称作为字符串传递来更改颜色。如果我们只定义一个颜色值,它将应用于散点图中存在的所有圆圈。我们还可以通过使用与输入向量 x 和 y 大小相同的矩阵为每个圆赋予不同的颜色。矩阵可以包含正数值或 RGB 三元组颜色。例如,让我们改变上面散点图中每个圆圈的颜色。请参阅下面的代码。
clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
CSize = 1:100;
CColor = 100:-1:1;
scatter(x,y,CSize,CColor)
colorbar
输出:
colorbar
命令在上面的代码中用于在散点图中绘制颜色条。我们可以从颜色条中看出,低值属于较冷的颜色,高值属于较热的颜色。在此示例中,我们使用了具有正数值的向量,但我们也可以使用具有 RGB 三元组值的矩阵。上面散点图中的圆圈是空心的,但我们也可以使用 scatter()
函数内的 filled
属性来填充它们。例如,让我们填充上面散点图中的圆圈。请参阅下面的代码。
clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
CSize = 1:100;
CColor = 100:-1:1;
scatter(x,y,CSize,CColor,'filled')
colorbar
输出:
在输出中,填充了每种颜色。我们还可以更改散点图中的标记符号。默认情况下,scatter()
函数使用圆圈作为标记,但我们可以通过传递一个包含标记符号的字符串来更改它,例如 d
代表菱形,p
代表五角星,h
代表六角星,等等。例如,让我们将上面散点图中的标记符号从圆形更改为五角星形。请参阅下面的代码。
clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
CSize = 1:100;
CColor = 100:-1:1;
scatter(x,y,CSize,CColor,'p')
输出:
在输出中,标记符号更改为五角星形。我们还可以使用 scatter()
函数中的 MarkerFaceAlpha
属性更改标记的透明度。我们可以将透明度值从 0 更改为 1。例如,我们将上面散点图的透明度更改为 0.5。请参阅下面的代码。
clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
CSize = 1:100;
CColor = 100:-1:1;
scatter(x,y,CSize,CColor,'filled','MarkerFaceAlpha',0.5)
输出:
在输出中,标记具有相同的边缘和面颜色,但我们可以为标记赋予不同的边缘和面颜色。要更改标记的边缘颜色,我们可以使用 scatter()
图中的 MarkerEdgeColor
属性。要更改标记的面部颜色,我们可以使用 MarkerFaceColor
属性。颜色值可以是任何 RGB 三元组或包含颜色名称的字符串。我们还可以使用 LineWidth
属性更改标记边缘的线宽。例如,让我们更改上面散点图中标记的边缘颜色、面颜色和线宽。请参阅下面的代码。
clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
CSize = 1:100;
scatter(x,y,CSize,'MarkerFaceColor','yellow','MarkerEdgeColor','black','LineWidth',1.5)
输出:
在输出中,标记面颜色为黄色,边缘颜色为黑色。如果我们想创建一个 3D 散点图,我们可以使用 scatter3()
函数。此函数与 scatter()
函数相同,不同之处在于它在 3D 平面中绘制给定数据。我们可以为 scatter3()
函数提供两个或三个输入向量。在三个输入的情况下,第一个向量包含 x 坐标,第二个包含 y 坐标,第三个包含 z 坐标。在两个输入向量的情况下,第三个坐标 z 将从前两个坐标的索引中获取。例如,让我们使用 scatter3()
函数在 3D 位置绘制上述散点图。请参阅下面的代码。
clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
z = 1:100;
scatter3(x,y,z)
输出:
我们还可以像更改 scatter()
函数一样更改 scatter3()
函数属性。