Matlab - 根据标准绘制的颜色标记

时间:2015-05-16 18:54:03

标签: matlab plot markers

我在matlab图上有一个快速的问题。我想在每个点上画一条带有圆形标记的线,但我希望标记根据某些标准具有不同的颜色。我设法在标记上显示不同的标准,但我无法改变它们的颜色。

更具体地说明以下代码:

  • d3是该图的y值的(1×240)矢量。
  • RiskierInd是一个带有标准的(1x240)矩阵(它的值来自 1至12)。

我想要的是标准1为一种颜色的标记,标准为2的标记为另一种颜色,依此类推。

下面的代码绘制了带有标记的行以及标记内的标准。

% plot the data
figure
d3 = vals;
n = 1:numel(d3);
plot(n,d3, '-ob','markersize',10,'markerfacecolor','w');
for idx = 1:numel(d3)
    text(n(idx),d3(idx), num2str(RiskierInd(idx)),...
         'FontSize',8,...
         'HorizontalAlignment','center');
end

enter image description here

我确实检查过类似的this帖子,但无法弄清楚如何实现它。

此外,是否可以添加带有标记颜色的图例?

1 个答案:

答案 0 :(得分:1)

您可以使用scatter代替plot。你可以替换

plot(n,d3, '-ob','markersize',10,'markerfacecolor','w');

hold on
plot(n, d3,'b-');
scatter(n, d3, [], RiskierInd, 'filled');
caxis([1 12]);

然后,要显示颜色和值之间的对应关系,只需将colorbar添加到代码中即可。

编辑如果要定义自定义颜色,可以将colormap与自定义的n-by-3 RGB颜色数组一起使用。例如,你可以做到12种颜色:

 colormap(jet(12));

最佳,