用不同颜色绘制阵列的元素

时间:2014-10-14 08:32:00

标签: matlab colors plot

我有一个整数向量,从1到4不等。

A=[1 2 3 4 2 3 2 1 2 3 4 4]

我想为每个值绘制不同颜色的A ... 将A(1)连接到A(2)的垂直线应该具有第一个值的颜色(在这种情况下为1)。

这可能吗?

以及如何处理向量中存在的NaN的情况? 我应该用时间向量绘制A

A = [1 1 1 NaN 4 4 4 Nan 2 2 3 3];
time = [1 2 3 4 5 6 7 8 9 10 11 12];

2 个答案:

答案 0 :(得分:2)

假设您有以下一组颜色:

col = hsv(4);

您可以根据A:

的值设置颜色的顺序
figure();
set(gca, 'ColorOrder', col(A,:), 'NextPlot', 'replacechildren');

然后,您可以绘制所需颜色的每一行:

n = numel(A);
plot(hankel(0:1,1:n-1),hankel(A(1:2),A(2:n)))

这导致:


修改 正如我们在荷兰所说,hankel方法有点像用火箭筒射击杀死蚊子。无论如何,我几个问题前就已经了解了 - 所以我喜欢用它。请参阅Dan的帖子,了解更简单的绘图替代方案。不过,设置正确的颜色可以如上所述。

答案 1 :(得分:1)

你可以用一点技巧来做到这一点:

A=[1 2 3 4 2 3 2 1 2 3 4 4]

x = [1:numel(A)-1; 2:numel(A)];
y = A(x);

plot(x,y)

enter image description here