【发布时间】:2015-02-05 04:07:11
【问题描述】:
我是 Matlab 新手,我试图用散点图在轴上绘制 4 个点。
例如
x = [0;0;1;-1];
y = [1;-1;0;0];
scatter(x,y);
我想做的是顺时针连续改变上图中一个坐标的颜色
如上图。
如果没有,我可以用其他方法吗?
提前致谢。
【问题讨论】:
标签: matlab matlab-figure scatter-plot
我是 Matlab 新手,我试图用散点图在轴上绘制 4 个点。
例如
x = [0;0;1;-1];
y = [1;-1;0;0];
scatter(x,y);
我想做的是顺时针连续改变上图中一个坐标的颜色
如上图。
如果没有,我可以用其他方法吗?
提前致谢。
【问题讨论】:
标签: matlab matlab-figure scatter-plot
您可以在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
【讨论】: