Thanks to all for the help. I have reopened a bug (4176).
Wolfgang Von: users [mailto:[email protected]] Im Auftrag von Rafael Guerra Gesendet: Mittwoch, 22. April 2015 19:01 An: [email protected]; International users mailing list for Scilab. Betreff: Re: [Scilab-users] Display problem Hi Tim, There are situations where one may want to arbitrarily zoom a plot interactively. This leads me to a past email thread "Scaled plot displays in Scilab?" where there was a possible Java heap limitation. This has important industrial applications. I copy below acode sample from that thread, fyi, which explodes Scilab for a plot scale= 1 / 20: // Code adapted from Serge Steer's script: clf; plot(linspace(0,100,10),linspace(0,150,10)) fig= gcf(); ax= gca(); ax.tight_limits= "on"; //Dimensions of the axis in user coordinates ax_xu= ax.data_bounds(2,1)-ax.data_bounds(1,1); ax_yu= ax.data_bounds(2,2)-ax.data_bounds(1,2); //pixel size in mm to be determined according to screen size and resolution (dpi) dpi= 90; // dots per inch (depending on screen resolution) px= 2.54e-2/dpi;//conversion from pixel to meter //py= 2.54e-2/dpi;//conversion from pixel to meter printf("\nSetting scale=1/500 is fine but scale=1/20 crashes Scilab 5.4.1 in Win 7\n"); scale= input("ENTER scale = "); // scale= 1/200; // OK // scale= 1/20; // Scilab aborts (Win 7) as window is larger than screen! //Dimension of the axis in pixels ax_xp= ax_xu/px*scale; //ax_yp= ax_yu/py; //Dimension of the current portion of the canvas in pixels ax_Wp= ax_xp/(1-sum(ax.margins(1:2))); //ax_Hp= ax_yp/(1-sum(ax.margins(3:4))); //Canvas dimensions in pixels fig_Wp= ax_Wp/ax.axes_bounds(3); //fig_Hp=ax_Hp/ax.axes_bounds(4); fig_Hp=ax_yu; // Samuel Gougeon's tip: fig.auto_resize = "off"; //Set fig.axes_size property to have fig.axes_size=[fig_Wp,fig_Hp]; Regards, Rafael > From: [email protected]<mailto:[email protected]> > To: [email protected]<mailto:[email protected]> > Date: Wed, 22 Apr 2015 09:04:01 -0700 > Subject: Re: [Scilab-users] Display problem > > On Wed, 2015-04-22 at 06:07 +0000, SCHULZ Wolfgang wrote: > > Hello, > > I would like to display 10e6 points but it seems that Scilab (5.2.2 x64 on > > Win7) works only till 8e6 points. > > > > I tried increasing the Java Heap memory (and restarted Scilab afterwards) > > but there was no effect. > > > > Here is a test program what works till 8e6 but doesn't work for 9e6. > > > > stacksize('max') > > Maximum=8e6 > > dt=1/Maximum; > > t=0:dt:1; > > y=sin(2*%pi*50*t); > > plot(t,y); > > > > Any idea what could be wrong? > > While you're waiting to get the bug fixed, have you pondered the > impossibility of displaying X values in Y spaces when X >> Y? Unless > you've got something astonishing, your display has, at most, only a few > thousand pixels across, so there's no way you can display 10e6 points > anyway. The same holds for any normal page-sized sheet and printer > (although I suppose you could manage this with a 300mm silicon blank and > some state-of-the-art lithography). > > If your function is continuous, then doing > > plot(t(1:100:$), y(1:100:$)) > > will give you a pretty close approximation, and still use way more > points than your display can handle. If you're looking for glitches > then you'll have to do something fancier (and more challenging as far as > memory usage). > > -- > > Tim Wescott > www.wescottdesign.com<http://www.wescottdesign.com> > Control & Communications systems, circuit & software design. > Phone: 503.631.7815 > Cell: 503.349.8432 > > _______________________________________________ > users mailing list > [email protected]<mailto:[email protected]> > http://lists.scilab.org/mailman/listinfo/users
_______________________________________________ users mailing list [email protected] http://lists.scilab.org/mailman/listinfo/users
