Matlab - 如何制作自定义图例

Sim*_*mon 7 matlab legend

我有以下图片:

在此输入图像描述

我想为它做一个传奇.基本上,我想为每种类型的矩形制作一个图例.在图例框中,我想根据它标记的正文类型标记每个颜色线:

  • 绿线:头
  • 黄线:躯干
  • 紫线:右臂
  • 青色线:左臂
  • 红线:左腿
  • 蓝线:右腿

这基本上是自定义的,因为我有更多的每种类型的矩形.如何进行自定义图例并将其附加到绘制此图片的图形上?

dvr*_*d77 7

有两种方法可以解决这个问题.您可以创建方块,然后将它们分配给hggroup.这样,每种颜色都没有多个项目.像这样的东西:

hold on
for ii = 1:4
    hb(ii) = plot(rand(1,2), rand(1,2),'color','r'); 
end

hg = hggroup;
set(hb,'Parent',hg) 
set(hg,'Displayname','Legs')

legend(hg)
Run Code Online (Sandbox Code Playgroud)

或者您可以创建虚拟对象,如下所示:

hold on
for ii = 1:4
    hb(ii) = plot(rand(1,2), rand(1,2),'color','r'); 
end

p = plot([],[],'r');

legend(p,'Legs')
Run Code Online (Sandbox Code Playgroud)

前者更优雅一点.


ang*_*nor 2

我能想到的最简单的方法是首先绘制每种类型的一个矩形,并仅为唯一的矩形构建一个图例。就像这样:

figure;
hold on;

% unique rectangles
plot(rand(1, 10), 'b');
plot(rand(1, 10), 'g');

% the rest
plot(rand(1, 10), 'b');
plot(rand(1, 10), 'g');

% use normal legend with only as many entries as there are unique rectangles
legend('Blue', 'Green');
Run Code Online (Sandbox Code Playgroud)

您将有许多相同颜色的线条,但图例仅适用于独特的颜色。