Hello all,
This sounds interesting, but we also have gnuplot, tcl-tk, geomview. If
we use so many different plotting programs, we'll get a Tower of Babel
and users will get a lot of confussion.
If you browse the archives of this mailing list, people ask things like:
how can I plot this and this with gnuplot? And usually the answer
consists in adding some more code in the gnuplot_preamble, but this code
is not part of the Maxima language, it's gnuplot code. It seems that
users should have at hand gnuplot's manual when working with Maxima. I'm
afraid users should to get familiar with different plotting
instructions, depending on the program they're working with.
A long term (or not so long) solution is to design a complete graphics
language in Maxima, which should be independent of the plotting program.
This is a (not very elaborated) example: if we want to draw with gnuplot
two points joined by an arrow, together with a label, we could write
something like
/* expressions with the equal sign are options, */
/* which should have specific default values. */
/* The following sintax is just a guess. */
myscene: scene(
point(1, 3,
colorpoint=blue,
stylepoint=square),
point(-1, -5,
colorpoint=[23,54,255],
sizepoint=0.02),
arrow(1, 3, -1, -5,
colorarrow=black),
label("An arrow with two points", 0, 4,
positionlabel=center,
fontlabel=courier,
colorlabel=[34,0,123]) ) $
plot(myscene, with=gnuplot) $
But if you prefere plplot, just write
plot(myscene, with=plplot) $
get the idea? The description sintax should be always the same. The
problem is that not all the programs have the same plotting
capabilities; for example, at this moment, gnuplot can't handle binary
pictures, but plplot and tcl-tk can; in these cases, the Maxima manual
should give this kind of information. Once gnuplot learns how to paint
pictures, we only have to make some changes in our code in the gnuplot
interface and delete a pair of lines in the Maxima manual.
A different solution to the Tower of Babel problem is to work with only
one program which gives us full control on what appears on the screen,
including interaction (the slider in Jaime's plotdf package is a nice
example) and animations. As I see it, tcl-tk is the closest tool (are
there others?) at our hands.
I don't know which is the best solution, or if there are other
solutions, or even if the problem really exists and if we need a
solution at all; in this case, please forgive my fantasy.
Good luck.
--
Mario Rodriguez Riotorto
www.biomates.net