2017-04-21 2 views
0

Ich möchte mit xfpoly Begrenzungen erzeugen und sie unter Verwendung von xs2pdf speichern. Dann möchte ich ein Diagramm von 2 Funktionen in diesen Grenzen anzeigen, eine Legende zu diesen Funktionen hinzufügen und das Bild erneut speichern.Scilab - Legend NUR für einen bestimmten Satz von Funktionen

Mein Code folgt ...

clear; clc; xdel(winsid());  

t = -2:0.01:2; 
x_1 = t.^2; x_2 = t.^4; 

xfpoly([-3 -2 -2 -3], [0 0 16 16], color('grey')); 
ax = gca(); 
ax.auto_clear = 'off'; ax.data_bounds = [-3, 0; 3, 3]; 
ax.box = 'on'; 
ax.axes_visible = ['on','on','off']; ax.tight_limits = ['on','on','off']; 
xfpoly([2 3 3 2], [0 0 16 16], color('grey')); 
xfpoly([-1 1 1 -1], [1 1 16 16], color('grey')); 

xs2pdf(gcf(), 'fig_1'); 

plot2d(t, [x_1', x_2'], [color('green'), color('red')]); 
legend(['t^2'; 't^4']); 
leg_ent = gce(); 
leg_ent.text = ['';'';'';'t^2'; 't^4'] 

xs2pdf(gcf(), 'fig_2'); 

Antwort

0

Atilla's answer brachte mich zu dieser Lösung pause Befehl:

clear; clc; xdel(winsid());  

t = -2:0.01:2; 
x_1 = t.^2; x_2 = t.^4; 

plot2d(t, [x_1', x_2'], [color('green'), color('red')]); plot_1 = gce(); 
legend(['t^2'; 't^4']); leg_1 = gce(); 
plot_1.visible = 'off'; leg_1.visible = 'off'; 

xfpoly([-3 -2 -2 -3], [0 0 16 16], color('grey')); 
xfpoly([2 3 3 2], [0 0 16 16], color('grey')); 
xfpoly([-1 1 1 -1], [1 1 16 16], color('grey')); 
ax = gca(); 
ax.box = 'on'; 

xs2pdf(gcf(), 'fig_1'); 
// pause 
plot_1.visible = 'on'; leg_1.visible = 'on'; 
xs2pdf(gcf(), 'fig_2'); 
+0

Wenn meine Antwort Ihnen geholfen hat, können Sie sie upvoten. Ich bin froh, dass ich helfen konnte. – Attila

+0

Ich würde gerne upvote. Aber mein Ruf ist zu gering, um das zu tun ... – ska109

0

Haben Sie so etwas wie dies wünschen?

clear; 
clc; 

t = -2:0.01:2; 
x_1 = t.^2; x_2 = t.^4; 

scf(0); 
clf(0); 
//plot the curves first to make legend easier 
plot2d(t, [x_1', x_2'], [color('green'), color('red')]); 
legend(['t^2'; 't^4']); //the first two elements are the curves, so no neet to modify 
ax = gca(); 
ax.auto_clear = 'off'; 
ax.data_bounds = [-3, 0; 3, 3]; 
ax.box = 'on'; 

xfpoly([-3 -2 -2 -3], [0 0 3 3], color('grey')); 
xfpoly([2 3 3 2], [0 0 3 3], color('grey')); 
xfpoly([-1 1 1 -1], [1 1 3 3], color('grey')); 


scf(1); 
clf(1); 
xfpoly([-3 -2 -2 -3], [0 0 3 3], color('grey')); //ymax sholud be 3, not 16 
xfpoly([2 3 3 2], [0 0 3 3], color('grey')); 
xfpoly([-1 1 1 -1], [1 1 3 3], color('grey')); 
ax = gca(); 
ax.auto_clear = 'off'; 
ax.data_bounds = [-3, 0; 3, 3]; 
ax.box = 'on'; 
+0

Ja, ich brauche diese 2 Grundstücke zu erstellen. Aber (für Lehrzwecke) in der Reihenfolge, wie es in meiner Frage geschrieben ist - graue Grenzen zuerst, dann addiere 2 Kurven. Das Problem ist, dass ich zuerst 5 Graphen mit Begrenzungen erzeuge und dann 5 Plots mit je 2 Kurven hinzufüge. – ska109

Verwandte Themen