顺序改变散点图中每个点的颜色
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
我是 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