我需要绘制两个向量的数据,并希望每个向量的数据点以图例中解释的不同颜色显示。但是,下面的代码仅显示第二个的图例。我做错了什么?
for i_plot = 1 : plot_step : N
subplot(N, 1, i_plot)
h_A = plot(bookmarksA(i_plot, :),0,'b.','MarkerSize',24);
legend('a');
xlim ([0 pieceDuration])
set(gca, 'yTick', []);
title(subj_string(i_plot,:))
hold on
h_Z = plot(bookmarksZ(i_plot, :),0,'r.','MarkerSize',24);
legend(h_Z, 'z');
end
最佳答案
您一次只能将一个标签/句柄组合传递给 legend
命令。对于给定的轴,每次对 legend
的调用都会覆盖之前对 legend
的调用,删除以前的图例,而不是添加到现有图例。您需要使用两个绘图句柄和标签来调用legend
一次。
legend([h_A, h_Z], {'a', 'z'})
更新
由于在您的情况下 h_A
和 h_Z
是具有相同外观的绘图句柄数组,因此您只需传递 h_A
中的第一项即可h_Z
到 图例
。
legend([h_A(1), h_Z(1)], {'a', 'z'})
关于两个图的 Matlab 图例仅适用于第二个图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37998465/