On Sun, Nov 16, 2008 at 10:03 AM, mhampton <[EMAIL PROTECTED]> wrote: > > I think this sounds great, I give a hearty +1. > > I've gotten frustrated in the past by the plotting code. Being "more > closely tied to matplotlib" would be nice for lots of reasons. I as well support utilizing matplotlib way more. I wrote a lot of that plotting code almost 3 years ago and in the meantime have watched matplotlib continually get better and better. Their code is far better the (naive) stuff I wrote way back then.
A big +1 for going with matplotlib as much as possible. -Alex The > matplotlib documentation is pretty good, and maybe some of what we do > could find its way upstream in Mike's approach. Its a similar > situation to how I feel about the preparser and leaving python types > alone - its a good thing to stay as close to python as possible. > > Many cheers for working on this! > > -Marshall > > On Nov 17, 11:23 am, "Mike Hansen" <[EMAIL PROTECTED]> wrote: >> Hello, >> >> >> >> On Sat, Nov 15, 2008 at 11:06 AM, Ronan Paixão <[EMAIL PROTECTED]> wrote: >> >> > Em Sex, 2008-11-14 às 16:22 -0200, Ronan Paixão escreveu: >> >> I recently thought about implementing more functions used by non-math >> >> people (I'm an Electronic Engineering student). >> >> >> I started by trying to make a Bode plot, but after a lot of digging to >> >> find how to make subplots and how to use logarithmic scale in plot(), I >> >> found that if applying that kind of scale can turn plot() unusable. >> >> >> The first problem is that the adaptive choosing of points just considers >> >> linear scale, so the points get too much spaced apart in the beginning >> >> of the plot and too close in the end. >> >> >> The second problem relates to the axis, which, for the same reason, >> >> isn't located right. >> >> >> to test it, one can try: >> >> >> p=plot(x,marker='.') >> >> f=pylab.figure() >> >> f.gca().set_xscale('log') >> >> p.save(figure=f) >> >> >> So, I intend to implement the changes in plot() to support it. >> >> For that, I ask YOU (uncle sam pointing finger) sage gurus how to better >> >> implement that: would it be better to try check if the user used a >> >> custom figure() with different axis or would it be better to add another >> >> kwarg like log="xy" where "x" would make the x axis logarithmic and "y" >> >> likewise for the y axis, avoiding the need for the user to deal with >> >> matplotlib's figure()? >> >> After thinking about this (and the plotting code in general), I think >> our best bet is to scrap the custom axes code written in >> sage/plot/axes.py and to let matplotlib handle axes, ticks, etc. >> They've thought about and worked on this problem and have developed a >> fairly robust solution. Most of the axes code hasn't been touched in >> over 2 years despite complaints ( >> seehttp://groups.google.com/group/sage-devel/browse_thread/thread/394b2f... >> ). If we want custom axes, then we should do so by properly >> subclassing matplotlibs Axes class. >> >> Additionally, I think the Graphics wrapper should not be nearly as >> heavy as it is. In particular, there's no way to get at and modify >> the matplotlib subplot object. For example, I have some preliminary >> code that would let one do this: >> >> sage: p = plot(e^x, 1, 5) >> sage: p.subplot.set_xlabel('Mike') >> <matplotlib.text.Text object at 0x46b8350> >> sage: p.subplot.set_title('A plot') >> <matplotlib.text.Text object at 0x46badd0> >> sage: p.subplot.set_ylabel("Sage") >> <matplotlib.text.Text object at 0x46ba090> >> sage: p.save('plot1.png') >> sage: p.subplot.set_yscale('log') >> sage: p.save('plot2.png') >> >> to produce the following images: >> >> http://sage.math.washington.edu/home/mhansen/plot1.pnghttp://sage.math.washington.edu/home/mhansen/plot2.png >> >> While this would mean being more closely tied to matplotlib as a >> backed, I think the benefits are worth it. I don't envision anybody >> working on another backend for Graphics anytime in the near future. >> >> --Mike > > > -- Alex Clemesha clemesha.org --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---