排除图例中的实体(散点图和直线)- Matlab

Exclude Entities in Legend (Scatter and Line) - Matlab

我尝试了很多组合来解决这个问题,从论坛等,但每一个都不能解决我的问题。我有两个 line 地块和两个 scatter 地块。我希望只在 legend.

中显示两个 scatter

这是我的代码:

line([-4, 4],[0,0], 'LineWidth', 2, 'Color', [0 0 0]); % Do not want this in Legend
hold on
line([0, 0],[-4,4], 'LineWidth', 2, 'Color', [0 0 0]); % Do not want this in Legend
hold on
i_h = scatter(valence_i, arousal_i,'MarkerEdgeColor', 'k', 'MarkerFaceColor', 'b');
legend(i_h, 'Induced Emotion')
hold on
p_h = scatter(valence_p, arousal_p, 'MarkerEdgeColor', 'k', 'MarkerFaceColor', 'r');
legend(p_h, 'Perceived Emotion')
axis([-4 4 -4 4])
xlabel('Valence')
ylabel('Arousal')

代码确实排除了 line 对象,但最后一次调用 legend 覆盖了前一个。 line 对象只是在绘图中间标出一个十字,因此在 legend.

中不需要它们的原因

您只需调用一次图例:

legend ( [i_h p_h], 'Induced Emotion', 'Perceived Emotion' )