如何在三个曲线的一个图中仅使用一个图例?

我如何只使用一个图例中的虚线表示“ hopf”而对连续线表示“ ACDC”?

我正在使用的代码是这样:

clear; close 
Tspannew=linspace(1,100,1000);
ys_new=[]
ysp= []
for i = 1:3
ysp= i^2.*sin(Tspannew)
ys_new(:,i)=ysp

ACDCp=i^2*cos(Tspannew)
yn_ACDC(:,i)= ACDCp
end    

close;
figure
plot(Tspannew,ys_new,'--','DisplayName','Hopf Fold'); 
hold on;
plot(Tspannew,yn_ACDC,'ACDC')
hold off
legend

但是,它会生成6个图例。我只需要两个与实线和虚线相关的图例。

gongyannn 回答:如何在三个曲线的一个图中仅使用一个图例?

免责声明:我使用Octave 5.1.0测试了以下代码,但是我直接从MATLAB的legend文档中得到了这个主意:请参见subset版本。您可以收集绘图的图形对象,然后从两个“线集合”中选择一条或多条特定线。

让我们看一下这段代码:

Tspannew = linspace(1,100,1000);
ys_new = [];
ysp = [];
for ii = 1:3
  ysp = ii^2.*sin(Tspannew);
  ys_new(:,ii) = ysp;
  ACDCp = ii^2*cos(Tspannew);
  yn_ACDC(:,ii) = ACDCp;
end    

figure(1);
hold on;
hopf = plot(Tspannew,ys_new,'--','DisplayName','Hopf Fold');
acdc = plot(Tspannew,yn_ACDC,'ACDC');
hold off;
legend([hopf(1); acdc(1)],['HOPF legend text'; 'ACDC legend text']);

我得到以下输出,分别对应于“行集合”中的第一行:

Output

希望有帮助!

本文链接:https://www.f2er.com/3081369.html

大家都在问