On 11 November 2011 23:31, Aaron Meurer <asmeu...@gmail.com> wrote: > On Fri, Nov 11, 2011 at 2:13 PM, krastanov.ste...@gmail.com > <krastanov.ste...@gmail.com> wrote: > > Hi > > > > I'm a bit ashamed that Aaron gave better introduction than me for my own > > code :) > > Anyway, I think the documentation of Plot and the module is quite > detailed > > so you can look also at help(Plot) and help(newplot). > > > > About the warnings - my idea was to structure the base backend class in > such > > a way that any missing functionality in the backend subclass will just > raise > > a warning but not an error (unless it is some essential functionality). > So > > those will be addressed later. > > > > It can plot Integrals (due to an old addition done to lambdify thanks to > > Certik) but not Sums or anything fancy like product of Kets and Bras. To > do > > those a more in depth refactoring of lambda will be needed as Certik's > > method for adding Integral to lambdify does not scale well. I think this > is > > an important problem. > > I agree. Is there an issue for this? > No issue for the moment. I take responsibility for creating one when I gather enough understanding of the code and the problem.
> > > > > Discontinuous functions may pose problems for the moment (none seen for > the > > moment, but this is mostly by chance). > > As far as I can tell, this is a nontrivial problem to solve, as many > very good plotting systems choke on discontinuous functions. Perhaps > there can be some kind of symbolic heuristic applied to find > discontinuities. > I think Maple has some option in its plotting module about detecting asymptotes (numerically?) but I can not check it at the moment. Anyhow, this is not the most important feature at the moment. > > > > > About the bug in matplotlib - Aaron, you said that you will make a pull > > request for them. Should I do something or you have already taken care of > > this. > > Sorry for the misunderstanding, but this is not what I said. I was > suggesting to you that you do it. I haven't even been able to > reproduce the bug you are seeing, so I can't even tell with certainty > what the correct fix is. > I'm sorry :D (my mistake). I'll do it. > > > > > I'll start writing tests for the module in the near future. Then the core > > devs should tell me if this code is going in and how. > > I definitely think it should go in. I guess the question is how to > properly replace/merge it with the old module, which isn't compatible > (it uses different syntax, keywords, etc.) > > Actually, to what degree is the new Plot() function incompatible with > the old one? Would it be possible to merge the two without breaking > compatibility with the old module? > There are some things about the api of the old module that I don't like, but I'll check if there is a compromise that can be made. I understand the importance of not breaking the api. But I was thinking it would be best to have both modules and then a backend for the old module in the new module. And maybe move the old module to plotting.oldplot or leave the new module in plotting.newplot. > > > > > About the '3d' string - you are right it's a bad default. It's just that > > contour was written first, but I'll change this now. > > Cool. By the way, will it be possible in the future to call something > like p.change_plot_type('contour') (only with a better name than that > :) and it will change it from 3d to a contour? > At the moment 3dsurface (not parametric) and contour are represented by different classes. It makes sense to merge them and add an option (actually there is a repetition of code at the moment). It would be something like: p = Plot(blah blah) p[0].visualisation_method = '3d' or 'contour' the name of the attribute may be other ('plot_type', 'projection', ...) > > > > > Finally - I was squashing and rebasing this pull request quite a bit. > Now as > > it's getting more attention I'll stop doing it, so you are free to make > > changes if you are interested. > > Great. This makes it easier to follow your progress. > > Aaron Meurer > > > > > On 11 November 2011 21:41, Aaron Meurer <asmeu...@gmail.com> wrote: > >> > >> Oh, I forgot to mention that I got the following warnings: > >> > >> In [6]: p = Plot(Heaviside(x)*(1 - x)*sin(y), (x, -1, 1), (y, -pi, pi)) > >> > >> In [7]: p.show() > >> /sw/lib/python2.7/site-packages/matplotlib/axes.py:4368: UserWarning: > >> No labeled objects found. Use label='...' kwarg on individual plots. > >> warnings.warn("No labeled objects found. " > >> > >> In [8]: p = Plot(Heaviside(x)*(1 - x)*sin(y), (x, -1, 1), (y, -pi, pi), > >> '3d') > >> > >> In [9]: p.show() > >> > >> > /Users/aaronmeurer/Documents/python/sympy/sympy/sympy/plotting/newplot.py:901: > >> UserWarning: xscale is not supported in 3D matplotlib backend. > >> warnings.warn('xscale is not supported in 3D matplotlib backend.') > >> > >> > /Users/aaronmeurer/Documents/python/sympy/sympy/sympy/plotting/newplot.py:879: > >> UserWarning: axis_center is not supported in 3D matplotlib backend. > >> warnings.warn('axis_center is not supported in 3D matplotlib backend.') > >> > >> > /Users/aaronmeurer/Documents/python/sympy/sympy/sympy/plotting/newplot.py:895: > >> UserWarning: xscale is not supported in 3D matplotlib backend. > >> warnings.warn('xscale is not supported in 3D matplotlib backend.') > >> > >> Aaron Meurer > >> > >> On Fri, Nov 11, 2011 at 1:39 PM, Aaron Meurer <asmeu...@gmail.com> > wrote: > >> > Hi. > >> > > >> > This looks great. For others, to run the examples, download the > >> > examples script and put in the sympy directory. Then, checkout > >> > Krastanov's branch (from the pull request). Then, run IPython, and > >> > type %run examples.py. And then type p0.show(), p1.show(), etc. (up > >> > to p4). > >> > > >> > And if you just want to test the plotting of your own functions in > >> > isympy, you have to run "from sympy.plotting.newplot import *", or > >> > else it will use the old plotting. The syntax is > >> > > >> > In [8]: p = Plot(Heaviside(x)*(1 - x)*sin(y), (x, -1, 1), (y, -pi, > pi), > >> > '3d') > >> > > >> > In [9]: p.show() > >> > > >> > (if you don't add '3d' in this case, it will default to a contour > >> > plot, which btw is maybe not the best default) > >> > > >> > Aaron Meurer > >> > > >> > On Fri, Nov 11, 2011 at 7:46 AM, krastanov.ste...@gmail.com > >> > <krastanov.ste...@gmail.com> wrote: > >> >> The proposal that I made in https://github.com/sympy/sympy/pull/673may > >> >> or > >> >> may not became part of sympy but I like it and it's already quite > >> >> useful for > >> >> me. > >> >> > >> >> Here are some examples. I would like to know what do you think. The > 3d > >> >> stuff > >> >> runs only on the latest version of matplotlib _after_ fixing a bug > >> >> (mentioned in the commit history, but those will be squashed soon). > >> > > >> > I didn't have any problems with it, though you do seem to have found a > >> > bug in matplotlib. I would submit a pull request to them fixing it. > >> > > >> > Aaron Meurer > >> > > >> >> > >> >> The script to produce them is also attached (as the api is probably > >> >> more > >> >> important than the visuals (the _series[index] stuff is just a > >> >> workaround > >> >> until getters are written)). > >> >> > >> >> Regards > >> >> Stefan > >> >> > >> >> -- > >> >> You received this message because you are subscribed to the Google > >> >> Groups > >> >> "sympy" group. > >> >> To post to this group, send email to sympy@googlegroups.com. > >> >> To unsubscribe from this group, send email to > >> >> sympy+unsubscr...@googlegroups.com. > >> >> For more options, visit this group at > >> >> http://groups.google.com/group/sympy?hl=en. > >> >> > >> > > >> > >> -- > >> You received this message because you are subscribed to the Google > Groups > >> "sympy" group. > >> To post to this group, send email to sympy@googlegroups.com. > >> To unsubscribe from this group, send email to > >> sympy+unsubscr...@googlegroups.com. > >> For more options, visit this group at > >> http://groups.google.com/group/sympy?hl=en. > >> > > > > -- > > You received this message because you are subscribed to the Google Groups > > "sympy" group. > > To post to this group, send email to sympy@googlegroups.com. > > To unsubscribe from this group, send email to > > sympy+unsubscr...@googlegroups.com. > > For more options, visit this group at > > http://groups.google.com/group/sympy?hl=en. > > > > -- > You received this message because you are subscribed to the Google Groups > "sympy" group. > To post to this group, send email to sympy@googlegroups.com. > To unsubscribe from this group, send email to > sympy+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/sympy?hl=en. > > -- You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.