On 19.11.2006, at 19:38, John W. Eaton wrote:
On 19-Nov-2006, Matthias Brennwald wrote:
| Yes, it IS a gnuplot problem, and it's not that difficult to solve
| (see my previous post). BUT: what is the clean method to talk to
| gnuplot from Octave? I believe the internal __gnutplot_XYZ__
| are not intended to be used directly by 'normal' users, right?
Right. In the future, mixing higher-level plotting commands and
sending commands directly to gnuplot will have even more unpredictible
results than they do now. For some background, please read
in particular, the last paragraph of the first message, in which I
Until we have a fairly complete set of object graphics properties
available, we will just have to tell people that if they want full
control over graphics, they will need to write their data to a file
and use their favorite plotting package to generate the plots. This
has really always been the case. It's unfortunate that Octave ever
had the gplot and gset commands that made it appear that complete
control over gnuplot was possible (it never was).
Hmm, then maybe a corresponding note should be added to the help text
of the __gnuplot_XYZ__ commands. All I get is:
__gnuplot_raw__ is a built-in function
-- Built-in Function: __gnuplot_raw__ (STRING)
Send STRING directly to gnuplot subprocess.
From this, I'd never guess that I shouldn't be using __gnuplot_raw__
et al. And once I've built my code around the __gnuplot_XYZ__
commands (and once Octave has object graphics like Matlab) I'd be
just 'a little bit surprised' that I can start over with my work.
We will probably make it easier to communicate directly with gnuplot
by allowing you to do the things that are outlined in the second
message linked above, but you will have to assume complete
responsibility of the plot as mixing arbitrary calls to
__gnuplot_raw__ with the higher-level plotting commands will not
work. Given that, I wonder why one would not simply write out data
files and then run gnuplot separately.
There are several reasons for that:
1. If I can use Octave to plot my stuff, I will (just because I can).
2. I have some code that was written for Matlab originally. This
stuff includes plotting commands, and I want to run it in Octave.
3. I'm trying hard to make my code compatible with both Matlab and
Octave (this allows more people to use my code). And my programs rely
on plotting data. And sometimes I can't stand the fact that I can't
do everything in Octave using the 'standard' Matlab-like commands. I
therefore add __gnuplot_raw__ commands that are executed if my code
is executed with Octave.
Apart from these points I have to admit that I love Matlab for its
plotting functionality. In fact, at the beginning of my PhD work I
decided to stick to gnuplot, because I wouldn't get 'locked in' to a
commercial product that might suddenly stop to keep up with the
computer world, or might even stop to exist out of the blue. While it
seems to me that gnuplot can plot basically anything, I realised that
am not intelligent enough to find out how to do it (or that it takes
days or weeks to find out). Since I did most of my data processing in
Matlab, I got used to the Matlab plotting, and I have to admit that I
love it. I therefore switched from gnuplot to Matlab as my main
In conclusion, I prefer Matlab over Octave when it comes to plotting.
Also, if I want to make my programs run under Octave AND Matlab, the
current plotting functionality of Octave can pose problems. I'd
therefore greatly appreciate (a subset) of Matlab's object-oriented
plotting interface in Octave. After surfing the web a bit, I found
some seemingly great stuff here:
However, I am unsure whether this is just a wish list or if it is a
description for some real-world code that allows Octave to plot in
the Matlab way. Therefore:
A. How/where can I get this stuff (I couldn't find it on the above
B. Can I help in any way to build/extend the Matlabish plotting
CH 8037 Zürich
+41 (0)44 364 17 03
Help-octave mailing list