littlemathteacher wrote: > Dear supporters, > > again thanks for the great support. > > One thing I am missing (or simply not understanding) is 3dplotting > without automatically scaled up range of the function value. > > (This is just my first example at hand and surely not a good one: > y, x = var ('x,y') > plot3d(lambda x,y : (bessel_Y(y,x,"scipy",53)).real(), (-0.002,0.002), > (-1,1)) > > #Put some broader x-range in to see what I mean.) > > > Please excuse this sloppy written description: Jmol and Sage seem to > try to plot the whole graph even at singularities, then "give up" (at > a level I don't know how to fix) but leave the picture with the scaled > up value range. > > Use this link to see what I mean would be useful sometimes (and please > do not blame me because my plot above is another thing as seen there - > I am just playing around and I just took the first example at hand): > > http://mathworld.wolfram.com/ModifiedBesselFunctionoftheSecondKind.html > > There the value range is simply cut at some point. In the german > wikipedia article on the exponential function it is done in a similar > way by Maple and the whole picture is scaled equally in all > dimensions: > > http://de.wikipedia.org/w/index.php?title=Datei:Exp_re.png&filetimestamp=20050215210532 > > (Put the two lines together without intermedate space.) > > Is there a way to limit the value range in a 3dplot other than > limiting the input range (I want to see, say, the region around the > singularity)?
Here is a way to do what you want with a new very powerful feature in 4.0: implicit_plot3d(lambda x,y,z: z-(bessel_Y(y,x,"scipy",53)).real(), ( -0.002,0.002),( -1,1), (-100,100)) See http://www.sagenb.org/home/pub/347/ Using implicit_plot3d is a lot slower than I expected to do this, though. When http://trac.sagemath.org/sage_trac/ticket/5514 is finished and merged, you should be able to do something like: y, x = var ('x,y') plot3d(lambda x,y : (bessel_Y(y,x,"scipy",53)).real(), (-0.002,0.002), (-1,1), region=lambda x,y,z: z<20 and z>-20) or even y, x = var ('x,y') my_plot = plot3d(lambda x,y : (bessel_Y(y,x,"scipy",53)).real(), (-0.002,0.002), (-1,1)) my_plot.clip(lambda x,y,z: z<20 and z>-20) I agree that there should also be an easy way to do this without the functionality in #5514 and without having to resort to implicit_plot3d. Jason -- Jason Grout --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-support@googlegroups.com To unsubscribe from this group, send email to sage-support-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-support URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---