Hi I'm Shivam Vats, a second year undergraduate Maths and Computing student at IIT, Kharagpur, India. I'll be applying for Gsoc 2015 with Sympy. I've got a few patches merged and have been exploring Sympy for over a few months. Though I've not decided on my proposal, recently while looking into the plotting module I realised that there is a lot of work to do in it. The rationale for this post is to clear my doubts and get everyone's views regarding the issues in the plotting module. I'd appreciate any help.
ISSUES/BUGS 1) Sympy can't interpret the assumptions about the variables in the equations. eg: x = Symbol('x', positive=True) plot(x) It plots on the default [-10,10] interval, where it clearly shouldn't. My PR 8701 <https://github.com/sympy/sympy/pull/8701> is a start, but it solves the problem only for positive and negative variables. However the basic question is whether we should check the range given by the user and whether we want to have a smarter default range than the present [-10, 10]. In my opinion, a function that finds the domain of the function, taking into account the assumptions about the variables in it should work. 2) Currently if the ylim is not specified, plot adjusts the scale to show the whole graph. In many cases it may not be desired (Try plotting 1/x with default values) Instead of this default behaviour, one which limits the ylim to say a factor(just an example) of the max(x) should give better results, something like: if parent.ylim: self.ax.set_ylim(parent.ylim) else: starts = [s.start for s in parent._series ] ends = [s.end for s in parent._series] self.ax.set_ylim(10*min(starts), 10*max( ends)) TODOs 1) ContourSeries class in plot.py is currently not used anywhere:- I found this piece of code lying unused. Do we want to create a plot_contour function on the lines of plot? 2) A more general way to calculate aesthetics:- I found this in the code. Could someone please elaborate on what features we might want to add? Currently it can handle a function. 3) Adaptive sampling for 3D plot as Stefan mentions here https://groups.google.com/forum/#!topic/sympy/xHnYUtJVnx0 using triangular meshes: I don't understand the method right now, but would be more than happy to work on it if someone could give me some pointers on how to start. Cheers! -- You received this message because you are subscribed to the Google Groups "sympy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/741c4bfe-769a-4dbc-8c37-f9572f3160af%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.