Multiple plots: oddities (bugs?), missing features in Xmaxima and wxMaxima
Subject: Multiple plots: oddities (bugs?), missing features in Xmaxima and wxMaxima
From: Virgil L
Date: Sat, 17 Sep 2011 04:48:03 -0700 (PDT)
_______________________________
>From: Mario Rodriguez <biomates at telefonica.net>
> On 09/16/2011 04:49 PM, Virgil L wrote:
>>It does seem that draw2d addresses the issues mentioned before.?
>>I had focused on plot2d since it seems to have a simpler interface, but draw2d seems manageable.
>>
>Package draw has been written with complex scenes in mind, and to
>avoid users to consult the Gnuplot manual every time they need
>special plots. Probably, most of the time, users only need to plot
> simple curves and surfaces; in that cases, plot2d commands are
> more simple to type than in draw2d.
==============
Yes, that is what I thought. plot2d seemed like what I needed. But then I found the issues reported before.
Since those issues disappear if one accesses gnuplot though draw2d (with same version of maxima and gnuplot) then it seems clear that they are not caused by inherent limitations of either maxima or gnuplot. They are being caused by the function plot2d.?
It would be great if whoever maintain plot2d address/correct the issues/bugs mentioned before. The fact that the draw2d code is open would seem to be helpful in this effort.??
It is unfortunate that one would have to switch to a more complex plotting interface, or learn two plotting interfaces, just to address some relatively simple issues, such as having several plot windows open simultaneously.
??
===============
>
>>It seems as though draw2d interface may perhaps be cosmetically simplified...?
>> for example, it seems that the declaration explicit/implicit could be made?optional -- if it is not already so --?
>> since the absence/presence of an equal sign , =, provides the same information (if I understand correctly).?
>The implicit example is equivalent to
>
>implicit(-y^2+x^3-2*x+1, x, -4,4, y, -4,4)
>
>When the equal symbol is not present, Maxima assumes that the??expression is equal to zero.?
>This is a convention also used in??other parts of Maxima.
To make a concrete question: can maxima infer -- in the context of draw2d of course -- that?(sin(x),x,0,10) MUST mean ?explicit(sin(x),x,0,10) and (y^2=x^3+1,x,-4,-4,y,-4,4) MUST mean??implicit(y^2=x^3+1,x,-4,-4,y,-4,4) ?
If true then the declaration explicit/implicit could be _optional_, that is, allowed but not required.
>I know some people don't like to write 'explicit' and would prefer?the use of square brackets,?
> following the plot?d rules.?
> On the?contrary, I think there must be a general norm for all graphic?objects, which makes easier to read and?
> understand complex plots.
Of course, if a user wants to declare explicit/implicit for additional clarity,?consistency, etc fine....s/he should still be able to do so. But if maxima can infer unambiguously what the user means it would seem helpful to allow maxima to do so. And even if maxima occasionally infers wrong, the user could THEN write the complete declaration (while not writing it the vast majority of the times).
The ideal solution would be for the draw2d interface to be "incremental" over the plot2d one. By this I mean that for tasks that can be accomplished with either solution, the interface would be the same. But of course for advanced features supported by draw2d only, then draw2d would necessarily deviate from plot2d (for obvious reasons). This way, the user could learn only one plotting interface, draw2d, since he could use the same commands for plot2d whenever plot2d supports the given feature (else he would get an error message)... example: plot2d(sin(x),[x,-1,1]) or draw2d(sin(x),[x,-1,1]).
As for a user writing own wrapper functions, yes, it is in principle possible, especially for an "advanced" user. It may however not be realistic for a relatively new user to do so. The new user has his hands full learning the entire system (not just plotting) and won't want to deviate into modifying a system that he is just starting to know. Furthermore, it would seem to be a waste of community resources for "N" users to each spent "M" hours of programming each developing his own wrapper functions or adaptations. It would seem that the philosophy of open source software would suggest a different approach.
Best,
Virgil
>