matlab 绘制成带有图例的电影

matlab plots as movie with legend

我有一个关于电影传奇的问题。 这是我的代码:

fig = figure();
for i = 1: 70000
plot(signal1)
hold on;
plot([i,i],[-5,5])
plot(signal2,'r')
hold off;
title('\fontsize{14} my data');
legend('signal1','signal2');
axis tight;
f(i) = getframe(fig); 
end

图例显示了我绘制的前两个事物的相同颜色。如果我绘制更多它适用于其他地块。有没有我不知道的技巧?

legend 命令中定义的字符串按生成图的顺序分配。这意味着您的第一个字符串 'signal1' 分配给了 signal1 的图,第二个字符串 'signal2' 分配给了垂直线。

您有两种可能来解决这个问题。

  1. 对两个信号绘图后的垂直线执行plot
  2. 使用图的句柄直接分配图例。

这里是改变顺序的例子:

plot(signal1)
hold on;
plot(signal2,'r')
plot([i,i],[-5,5],'k')
hold off;
legend('signal1','signal2');

这里是一个例子,使用句柄sp1sp2):

sp1 = plot(signal1)
hold on;
plot([i,i],[-5,5],'k')
sp2 = plot(signal2,'r')
hold off;
title('\fontsize{14} my data');
legend([sp1,sp2],'signal1','signal2');