在 MATLAB 中绘制不带直线的 2D 点

Meh*_*med 0 matlab matlab-figure

我有一些 2D 点,我想在 MATLAB 中绘制它们,以便每个点都有不同的颜色和说明符。我已经使用了plot函数,但它会创建任何你给出的线条。我只想将这些点绘制为离散点。我怎样才能做到这一点?这是我试图以最简单的形式实现的目标(我在下面使用了 TikZ):

在此输入图像描述

更新: 感谢您的评论和回答,我现在有以下代码:

x = [  0.56, 0.4526, -0.4324, 0.2749, -0.2993, 0.3404, 0.1959, 0.3363, -0.1706];
y = [0.1999, 0.3939,  0.1999, 0.4414,  0.2000, 0.3931, 0.1999, 0.3966,  0.4056];

figure
plot(x(1),y(1),'rx')
hold on
plot(x(2),y(2),'*','Color','[0 0.9 0]')
hold on
plot(x(3),y(3),'*','Color','[0 0.5 0]')
hold on
plot(x(4),y(4),'o','Color','[0.47 0.52 0.8]','MarkerFaceColor','[0.47 0.52 0.8]')
hold on
plot(x(5),y(5),'o','Color','[0.05 0.28 0.63]','MarkerFaceColor','[0.05 0.28 0.63]')
hold on
plot(x(6),y(6),'s','Color','[1 0.71 0.30]','MarkerFaceColor','[1 0.71 0.30]')
hold on
plot(x(7),y(7),'s','Color','[0.9 0.32 0]','MarkerFaceColor','[0.9 0.32 0]')
%plot(x(7),y(7),'s','Color','[1 0 0.5]','MarkerFaceColor','[1 0 0.5]')
hold on
plot(x(8),y(8),'d','Color','[0.67 0.28 0.73]','MarkerFaceColor','[0.73 0.40 0.78]')
%plot(x(8),y(8),'d','Color','[0.67 0.28 0.73]','MarkerFaceColor','[0.67 0.28 0.73]')
hold on
plot(x(9),y(9),'d','Color','[0.29 0.08 0.55]','MarkerFaceColor','[0.29 0.08 0.55]')
xlabel('X')
ylabel('Y')
h = legend('(^1X,^1Y)','(^2X_1,^2Y_1)','(^2X_2,^2Y_2)','(^3X_1,^3Y_1)','(^3X_2,^3Y_2)','(^4X_1,^4Y_1)','(^4X_2,^4Y_2)','(^5X_1,^5Y_1)','(^5X_2,^5Y_2)');
set(h,'Location','best')
grid
Run Code Online (Sandbox Code Playgroud)

我现在可以将点绘制为具有不同颜色和说明符的点,尽管这种方式可能不是最好的方法。

在此输入图像描述

小智 5

您只需指定 LineSpec 选项即可

http://fr.mathworks.com/help/matlab/ref/plot.html#inputarg_LineSpec

要获取您的示例:

plot(xdata, ydata, '.')
Run Code Online (Sandbox Code Playgroud)

  • 您可以使用任何线图并使用“linestyle”、“none”选项来删除线条。 (2认同)