在循环中绘图时填充标记

时间:2016-03-23 17:24:11

标签: matlab matlab-figure

我试图在MATLAB中的单个图中绘制31个不同的向量。我正在使用圆形标记'o'来绘制每个矢量,我想让每个矢量都涂上不同的颜色,我也希望用相同的颜色作为标记来填充标记边缘。

我使用以下代码:

while (n<=31)
   plot(x(n),y(n),'o',rand(1,3))  % Not filled markers
   n=n+1;
end

问题是因为我使用随机颜色选择,当我尝试运行以下代码时:

while (n<=31)
   plot(x(n),y(n),'o','MarkerFaceColor',rand(1,3))  % Filled markers
   n=n+1;
end

标记边缘和标记填充具有不同的颜色。我不知道如何解决这个问题,也许我不应该使用随机选择颜色,但我不知道如何解决它,在标记边缘和填充中获得相同的颜色。

2 个答案:

答案 0 :(得分:4)

我建议您使用scatter而不是创建必须管理的n个不同的绘图对象。使用CData property可以为每个数据点设置单独的颜色。

colors = rand(31, 3);

x = rand(31,1);
y = rand(31,1);

s = scatter(x, y, 'filled', 'CData', colors);

enter image description here

答案 1 :(得分:3)

除了FaceColor

之外,'MarkerEdgeColor'是您想要的属性
while (n<=31)
   c = rand(1,3);
   plot(x(n),y(n),'o','MarkerFaceColor', c, 'MarkerEdgeColor', c);
   n=n+1;
end