One combined legend entry for multiple plots

拟墨画扇 提交于 2019-11-29 16:27:40

You will need to plot an invisible third plot (with almost no data to keep it fast) to define your legend:

data1 = (1:1:10)';
data2 = (1:2:10);
figure(1);
plot(data1,data1,'or'); hold on
plot(data2,data2,'-r'); hold on

%// legend plot
lp = plot(0,0,'-r','Marker','o','visible','off')
legend(lp,'data');

You need to pass the handle of that invisible plot to the legend command or you could even put the invisible plot into the legend:

legend(plot(0,0,'-r','Marker','o','visible','off'),'data');

If you need that more often, you can write a little helper function

style = @(LineStyle, MarkerStyle) plot(0,0,LineStyle,'Marker',MarkerStyle,'visible','off')
legend(style('-r','o'),'data');

... which you can customize with 'color', 'LineWidth' or whatever you want.

It enables you to create fully customized legends with multiple entries independently from your actually data:

legend([style('-r','o'),style('-b','x'),style('-g','v')],{'1','2','3'});

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!