[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
graphics-branch in CVS
From: |
John W. Eaton |
Subject: |
graphics-branch in CVS |
Date: |
Mon, 29 Jan 2007 17:46:57 -0500 |
On 7-Dec-2006, John W. Eaton wrote:
| I created a separate CVS branch called graphics-branch for the code
| that I've been working on. Check that out if you'd like to see what
| direction I'm heading in.
I've now done most of what I wanted to do on this branch, so I plan to
merge it with CVS HEAD soon. I think the current code handles all the
high-level functions that the previous code did, but there may be a
few missing features.
There are a couple of big advantages with the new implementation:
* It is more compatible with the handle graphics(tm) way of making
plots.
* Things like legend work without having to resort to kluges like
those used by the legend function from Octave Forge.
* Printing of subplots works with
x = -10:0.1:10;
subplot (2, 1, 1); plot (x, sin (x));
subplot (2, 1, 2); plot (x, cos (x));
print -deps sincos.eps
* The contour function uses the __contourc__ and contourc functions
from OctPlot so contours are now 2-d plots instead of a special
case of 3-d plots.
* The drawnow function is automatically called when Octave issues a
prompt, but only if something about a figure has changed.
There are also some things that could use improvement:
* There is still not much checking to ensure that properties have
valid values, so things will likely break for bad input. This
must be fixed, probably before 3.0 is released.
* Line width and color properties are not implemented. Since "how
do I change the line width in Octave plots" is a perennial FAQ,
I think this should also be fixed before 3.0 is released.
* It is slow, but not unbearably so, at least for me. Some of this
can probably be fixed by translating the core code that deals with
the list of graphics handles to C++. It may also be necessary to
convert the code that processes the plot data structure and
interacts with gnuplot.
* Not all plot properties are completely compatible with Matlab.
For example, to display the plot legend, Matlab seems to draw a
mini plot, and stores all the grphics objects necessary for that
as children of the current axis object. The new code in Octave
just stores info that a key is needed, along with some information
about the labels, and lets gnuplot generate the plot legend.
As I noted in my first post about these changes, I think of this code
as an intermediate solution to graphics problems in Octave. It gives
us a path forward so that at least some handle graphics code written
for Matlab can work in Octave, and it should allow us to solve some
long-standing problems with plotting.
So unless there are any major objections, I plan to merge these
changes with the main CVS branch in the next day or two. Then I think
2.9.10 can follow soon after as fixing some of the plotting problems
was the last big thing on my list for a new snapshot.
jwe
- Re: graphics-branch in CVS, John W. Eaton, 2007/01/11
- graphics-branch in CVS,
John W. Eaton <=
- Re: graphics-branch in CVS, David Bateman, 2007/01/30
- Re: graphics-branch in CVS, John W. Eaton, 2007/01/30
- Re: graphics-branch in CVS, David Bateman, 2007/01/30
- Re: graphics-branch in CVS, Søren Hauberg, 2007/01/30
- Re: graphics-branch in CVS, John W. Eaton, 2007/01/30
- Re: graphics-branch in CVS, Søren Hauberg, 2007/01/30
- Re: graphics-branch in CVS, Shai Ayal, 2007/01/31
- Re: graphics-branch in CVS, John W. Eaton, 2007/01/31
- Re: graphics-branch in CVS, Søren Hauberg, 2007/01/31
- Re: graphics-branch in CVS, John W. Eaton, 2007/01/31