我试图在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
标记边缘和标记填充具有不同的颜色。我不知道如何解决这个问题,也许我不应该使用随机选择颜色,但我不知道如何解决它,在标记边缘和填充中获得相同的颜色。
答案 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);
答案 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