Matlab 没有图例颜色

Matlab no legend colors

有人知道为什么图例与图的颜色不匹配而只是黑色吗?

figure;
plot(noActivity,0,'ko',lowActivity,0,'go',medActivity,0,'bo',highActivity,0,'ro');
hold on;
legend('no activity','low activity','medium activity','high activity');
stairs(integrals);

这就是它的样子:

谢谢!

如果 XY 参数之一是标量,plot will create as many Line plot objects as there are elements in the other argument:

If one of X or Y is a scalar and the other is either a scalar or a vector, then the plot function plots discrete points. However, to see the points you must specify a marker symbol, for example, plot(X,Y,'o').

因此,根据附图noActivity有4个以上的元素,图例的前4个元素风格相同。 (您可以通过将 plot 的输出分配给一个变量来验证这一点,只要所有四个数据向量组合在一起并且每个数据点包含一个 Line 对象)。

一个简单的解决方法是编写

plot(noActivity, zeros(size(noActivity)), 'ko', ...
    lowActivity, zeros(size(lowActivity)), 'go', ...
    medActivity, zeros(size(medActivity)), 'bo', ...
    highActivity, zeros(size(highActivity)), 'ro');

相反。这也应该更快并且内存效率更高,因为只会创建四个绘图对象。