绘图点之间的颜色变化

时间:2015-02-18 21:01:15

标签: matlab

以下代码绘制了3个点,全部为红色:

a = reshape([92.571251 94.869889 97.283709 ],[3  1]);
b = reshape([271.000000 296.000000 330.000000 ],[3  1]);
c = reshape([0.916000 0.766000 0.562000 ],[3  1]);
figure(100);
line(b,a,...
    'MarkerFaceColor',[1 0 0],...
    'Marker','o',...
    'LineStyle','none',...
    'Color',[1 0 0]);

我有办法对“颜色”的红色部分进行矢量化吗?情节风格使用' c'这样第一个点用c(1)代替1,使颜色为[0.916 0 0]等?

注意:此代码是一个更大的代码片段,可能会在同一个绘图上绘制100个点或1000个点。我需要将每个点的颜色放置在绘图上,然后在添加其他点时不要更改。 (如果可能的话)

我不认为颜色图是合适的,因为我可以在不同的时间在相同的X,Y坐标处绘制点。有时他们会很聪明,有时候会变暗。

试图不使用相对简单的循环。

谢谢!

1 个答案:

答案 0 :(得分:0)

要为点着色(只有点,而不是两者之间的线),您可以使用MarkerFaceColor函数的scatter属性(或3D中的scatter3)。< / p>

例如:

scatter(a, b, 'MarkerFaceColor', rgb)

其中rgb是RGB三元组,或

scatter(a, b, 'MarkerFaceColor', 'flat', 'CData', c)

c是值的向量。在这种情况下,颜色将映射到当前色彩映射,范围由caxis控制。

如果你想要点之间的线,你可以简单地使用这样的代码:

hold on
plot(a, b, '-')
scatter(...)

最佳,