[Scilab-users] Legends of saved SciLab graphs slip away

classic Classic list List threaded Threaded
4 messages Options
Denis Crété Denis Crété
Reply | Threaded
Open this post in threaded view
|

[Scilab-users] Legends of saved SciLab graphs slip away

Hello,

I noticed that saving graphs with legends was not reliable. Loading the graph in exactly the same environment results in a figure without readable legend. More specifically, the legend is almost always stowed in the upper left corner of the window, with all its components stacked on top of each other.

 

In addition, even if the legend is initially in the top axis level “Axis(1)”, after loading it appears in the tree in “Axis(2)”, i.e. behind the graph. So that moving back the legend to its original (X,Y) position does not allow to see it until gcf().children(1).filled=”off” is issued.

 

Moving the legend using the “Axis properties” window is somehow possible by changing the “Data bounds” fields of the “Axis Options”, but it is hard to tell what is the effect of the variable in each field. In addition, the units are not linked to anything relevant (always 0 for the first field and 0.001 for the second field ? same for X and Y). It looks like in general only the difference between the second field and the first field matters.

 

g_test=scf();

x=-1:0.01:1; y=sin(2*%pi*x); z=cos(2*%pi*x);

plot2d(x',[y;z]',style=1:2)

legends(['Sin','Cos'],1:2,"ur")

 

// Now, I save the figure in a file,

// clear it,

// and load it again, to notice that the legend escaped from its original place, not being able to read it.

 

// Legend recovery:

g_test.children(1).filled="off";

// and then it may be necessary to play with the “Data Bounds” of Axis(2), X or Y (or both).

 

I am using SciLab 6.0.0 (64 bits) on Windows 7 and a more recent version on Linux (64 bits), and both show this behavior. With SciLab 5.5.0 on Windows 7, after loading the figure, the legend slips away as well, but it is still in Axis(1); thus, g_test.children(1).filled="off" is not necessary. And moving back the legend to its original position is achieved by setting the Data Bounds to 0 and 0.001 on both X and Y axes.

.

This behaviour looks so strange to me that I have spent a lot of time trying to figure out how to avoid it… without success.

Best regards

Denis

 

[@@ THALES GROUP INTERNAL @@]

 

Unité Mixte de Physique CNRS / THALES

1 Avenue Augustin Fresnel

91767 Palaiseau CEDEx - France

Tel : +33 (0)1 69 41 58 52 Fax : +33 (0)1 69 41 58 78

e-mail :

 [hidden email] <[hidden email]>

http://www.trt.thalesgroup.com/ump-cnrs-thales

http://www.research.thalesgroup.com

 


_______________________________________________
users mailing list
[hidden email]
http://lists.scilab.org/mailman/listinfo/users
Denis Crété
Samuel GOUGEON Samuel GOUGEON
Reply | Threaded
Open this post in threaded view
|

Re: Legends of saved SciLab graphs slip away

Hello Denis,

I am not able to reproduce the behavior that you describe, neither with 6.0.0 nor with 6.0.1 on Windows7 64 bits:

g_test=scf();
x=-1:0.01:1; y=sin(2*%pi*x); z=cos(2*%pi*x);
plot2d(x',[y;z]',style=1:2)
legends(['Sin','Cos'],1:2,"ur")   // with an _s_, as in your post
twinkle(gcf().children(1))
save("fig0.dat","g_test")

xdel(gcf().figure_id)
load fig0.dat
twinkle(gcf().children(1))

The legend is correctly restored, at the expected position, with the expected filled property set to "on", with its handle at the expected first position among figure's children.

I did not try yet on Linux.

Regards
Samuel

Le 05/06/2018 à 12:15, CRETE Denis a écrit :

Hello,

I noticed that saving graphs with legends was not reliable. Loading the graph in exactly the same environment results in a figure without readable legend. More specifically, the legend is almost always stowed in the upper left corner of the window, with all its components stacked on top of each other.

 

In addition, even if the legend is initially in the top axis level “Axis(1)”, after loading it appears in the tree in “Axis(2)”, i.e. behind the graph. So that moving back the legend to its original (X,Y) position does not allow to see it until gcf().children(1).filled=”off” is issued.

 

Moving the legend using the “Axis properties” window is somehow possible by changing the “Data bounds” fields of the “Axis Options”, but it is hard to tell what is the effect of the variable in each field. In addition, the units are not linked to anything relevant (always 0 for the first field and 0.001 for the second field ? same for X and Y). It looks like in general only the difference between the second field and the first field matters.

 

g_test=scf();

x=-1:0.01:1; y=sin(2*%pi*x); z=cos(2*%pi*x);

plot2d(x',[y;z]',style=1:2)

legends(['Sin','Cos'],1:2,"ur")

 

// Now, I save the figure in a file,

// clear it,

// and load it again, to notice that the legend escaped from its original place, not being able to read it.

 

// Legend recovery:

g_test.children(1).filled="off";

// and then it may be necessary to play with the “Data Bounds” of Axis(2), X or Y (or both).

 

I am using SciLab 6.0.0 (64 bits) on Windows 7 and a more recent version on Linux (64 bits), and both show this behavior. With SciLab 5.5.0 on Windows 7, after loading the figure, the legend slips away as well, but it is still in Axis(1); thus, g_test.children(1).filled="off" is not necessary. And moving back the legend to its original position is achieved by setting the Data Bounds to 0 and 0.001 on both X and Y axes.

.

This behaviour looks so strange to me that I have spent a lot of time trying to figure out how to avoid it… without success.

Best regards

Denis

 

[@@ THALES GROUP INTERNAL @@]

 

Unité Mixte de Physique CNRS / THALES

1 Avenue Augustin Fresnel

91767 Palaiseau CEDEx - France

Tel : +33 (0)1 69 41 58 52 Fax : +33 (0)1 69 41 58 78

e-mail :

 [hidden email] <[hidden email]>

http://www.trt.thalesgroup.com/ump-cnrs-thales

http://www.research.thalesgroup.com

 



_______________________________________________
users mailing list
[hidden email]
http://lists.scilab.org/mailman/listinfo/users



_______________________________________________
users mailing list
[hidden email]
http://lists.scilab.org/mailman/listinfo/users
Denis Crété Denis Crété
Reply | Threaded
Open this post in threaded view
|

Re: Legends of saved SciLab graphs slip away

Hello,

Thank you for your quick answer.

I could get a correct behaviour with your code. However, if you run this part of the code:

g_test=scf();
x=-1:0.01:1; y=sin(2*%pi*x); z=cos(2*%pi*x);
plot2d(x',[y;z]',style=1:2)
legends(['Sin','Cos'],1:2,"ur")   // with an _s_, as in your post
twinkle(gcf().children(1))
save("fig0.dat","g_test")

xdel(gcf().figure_id)
 

and terminate with the command:

g_man=scf();

Now from the (empty) graphic window I click on “File”/”Load” and type in “*.dat”  + select “fig0.dat” then, I end up with the legend in the background (and thus invisible until I issue the console command g_man.children(1).filled=”off”… Note that the box is at the right location in the window; it is invisible only because it is in the background. The same behaviour is observed both on Windows and Linux platforms.

  

I still could not figure out under what circumstances the legends slip away in the top left corner…

 

Best regards

Denis

 

De : users [mailto:[hidden email]] De la part de Samuel Gougeon
Envoyé : mardi 5 juin 2018 13:05
À : Users mailing list for Scilab
Objet : Re: [Scilab-users] Legends of saved SciLab graphs slip away

 

Hello Denis,

I am not able to reproduce the behavior that you describe, neither with 6.0.0 nor with 6.0.1 on Windows7 64 bits:

g_test=scf();
x=-1:0.01:1; y=sin(2*%pi*x); z=cos(2*%pi*x);
plot2d(x',[y;z]',style=1:2)
legends(['Sin','Cos'],1:2,"ur")   // with an _s_, as in your post
twinkle(gcf().children(1))
save("fig0.dat","g_test")

xdel(gcf().figure_id)
load fig0.dat
twinkle(gcf().children(1))

The legend is correctly restored, at the expected position, with the expected filled property set to "on", with its handle at the expected first position among figure's children.

I did not try yet on Linux.

Regards
Samuel

Le 05/06/2018 à 12:15, CRETE Denis a écrit :

Hello,

I noticed that saving graphs with legends was not reliable. Loading the graph in exactly the same environment results in a figure without readable legend. More specifically, the legend is almost always stowed in the upper left corner of the window, with all its components stacked on top of each other.

 

In addition, even if the legend is initially in the top axis level “Axis(1)”, after loading it appears in the tree in “Axis(2)”, i.e. behind the graph. So that moving back the legend to its original (X,Y) position does not allow to see it until gcf().children(1).filled=”off” is issued.

 

Moving the legend using the “Axis properties” window is somehow possible by changing the “Data bounds” fields of the “Axis Options”, but it is hard to tell what is the effect of the variable in each field. In addition, the units are not linked to anything relevant (always 0 for the first field and 0.001 for the second field ? same for X and Y). It looks like in general only the difference between the second field and the first field matters.

 

g_test=scf();

x=-1:0.01:1; y=sin(2*%pi*x); z=cos(2*%pi*x);

plot2d(x',[y;z]',style=1:2)

legends(['Sin','Cos'],1:2,"ur")

 

// Now, I save the figure in a file,

// clear it,

// and load it again, to notice that the legend escaped from its original place, not being able to read it.

 

// Legend recovery:

g_test.children(1).filled="off";

// and then it may be necessary to play with the “Data Bounds” of Axis(2), X or Y (or both).

 

I am using SciLab 6.0.0 (64 bits) on Windows 7 and a more recent version on Linux (64 bits), and both show this behavior. With SciLab 5.5.0 on Windows 7, after loading the figure, the legend slips away as well, but it is still in Axis(1); thus, g_test.children(1).filled="off" is not necessary. And moving back the legend to its original position is achieved by setting the Data Bounds to 0 and 0.001 on both X and Y axes.

.

This behaviour looks so strange to me that I have spent a lot of time trying to figure out how to avoid it… without success.

Best regards

Denis

 

[@@ THALES GROUP INTERNAL @@]

 

Unité Mixte de Physique CNRS / THALES

1 Avenue Augustin Fresnel

91767 Palaiseau CEDEx - France

Tel : +33 (0)1 69 41 58 52 Fax : +33 (0)1 69 41 58 78

e-mail :

 [hidden email] <[hidden email]>

http://www.trt.thalesgroup.com/ump-cnrs-thales

http://www.research.thalesgroup.com

 




_______________________________________________
users mailing list
[hidden email]
http://lists.scilab.org/mailman/listinfo/users

 


_______________________________________________
users mailing list
[hidden email]
http://lists.scilab.org/mailman/listinfo/users
Denis Crété
Samuel GOUGEON Samuel GOUGEON
Reply | Threaded
Open this post in threaded view
|

Re: Legends of saved SciLab graphs slip away

Hello Denis,

Le 06/06/2018 à 12:57, CRETE Denis a écrit :

Hello,

Thank you for your quick answer.

I could get a correct behaviour with your code. However, if you run this part of the code:

g_test=scf();
x=-1:0.01:1; y=sin(2*%pi*x); z=cos(2*%pi*x);
plot2d(x',[y;z]',style=1:2)
legends(['Sin','Cos'],1:2,"ur")   // with an _s_, as in your post
twinkle(gcf().children(1))
save("fig0.dat","g_test")

xdel(gcf().figure_id)
 

and terminate with the command:

g_man=scf();

Now from the (empty) graphic window I click on “File”/”Load” and type in “*.dat”  + select “fig0.dat” then, I end up with the legend in the background (and thus invisible until I issue the console command g_man.children(1).filled=”off”


Confirmed. Thanks for reporting this issue. It shall be fixed in Scilab 6.0.2 with
https://codereview.scilab.org/20125

Regards
Samuel


_______________________________________________
users mailing list
[hidden email]
http://lists.scilab.org/mailman/listinfo/users