顺序改变散点图中每个点的颜色

Change color of each point in scatter plot sequentially

我是 Matlab 的新手,我正在尝试向您展示散点图以在轴上绘制 4 个点。

例如

x = [0;0;1;-1];
y = [1;-1;0;0];
scatter(x,y);

我想做的是顺时针连续改变上图中一个坐标的颜色

如上图

如果没有,我还有其他方法吗?

提前致谢。

您可以向 scatter 添加第四个参数以设置颜色(第三个参数设置大小,您可以将其留空):

col = lines(4); % create 4 colors using the 'lines' colormap
scatter(x,y,[],col);

您可以使用其他一些颜色图(在 Matlab 中键入 doc colormap 以获得更多详细信息),或者只需输入一些数字向量即可使用当前颜色图。

编辑 我刚刚发现您只想更改一个点的颜色;您可以使用(例如)col = [2 1 1 1] 来完成。

您需要分别绘制每个点,获取每个点的句柄,然后在循环中依次更改它们的 'color' 属性:

%// Data
x = [-1;0;1;0]; %// define in desired (counterclockwise) order
y = [0;1;0;-1];
color1 = 'g';
color2 = 'r';

%// Initial plot
N = numel(x);
h = NaN(1,N);
hold on
for n = 1:N
    h(n) = plot(x(n), y(n), 'o', 'color', color1);
end
axis([-1.2 1.2 -1.2 1.2]) %// set as desired

%// Change color of one point at a time, and restore the rest
k = 0;
while true
    k = k+1;
    pause(.5)
    n = mod(k-1,N)+1;
    set(h(n), 'color', color2);
    set(h([1:n-1 n+1:end]), 'color', color1);
end