[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Lining up the axes of multiplots/subplots

From: Shai Ayal
Subject: Re: Lining up the axes of multiplots/subplots
Date: Mon, 20 Nov 2006 20:28:26 +0200
User-agent: Thunderbird 2.0a1 (Windows/20060724)

Slightly off-topic, and I apologize for the blatant self promotion, but octplot is now in version 0.3.9 and quite usable.

Octplot supports quite a large subset of matlab compatible plotting commands from within octave. We have lines, markers, legends, multiplots, rotated text, contour, pcolor, bar, patch and some more. It also supports quality ps, pdf & png output, and should compile on linux, cygwin & Mac. Debian has a package for it.

get all this and more at:


Matthias Brennwald wrote:
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__ commands
| 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 November/001299.html November/001301.html

in particular, the last paragraph of the first message, in which I said

  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:

help __gnuplot_raw__
__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 plotting tool.

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 link)? B. Can I help in any way to build/extend the Matlabish plotting functionality? How?


Matthias Brennwald
L├Ągernstrasse 6
CH 8037 Z├╝rich
+41 (0)44 364 17 03

Help-octave mailing list

reply via email to

[Prev in Thread] Current Thread [Next in Thread]