以下代码绘制了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坐标处绘制点。有时他们会很聪明,有时候会变暗。
试图不使用相对简单的循环。
谢谢!
答案 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(...)
最佳,