octave-maintainers
[Top][All Lists]
Advanced

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

Re: Octave graphics bugs and thoughts


From: Ben Abbott
Subject: Re: Octave graphics bugs and thoughts
Date: Wed, 06 May 2009 07:24:22 -0400


On May 5, 2009, at 11:01 PM, Daniel J Sebald wrote:

I've come across some bugs in the gnuplot implementation of Octave's graphics. I also want to give some thoughts and suggestions. The order will be 1) thoughts, 2) bugs, 3) suggustion.

I commend those who've done so much work on the gnuplot graphics. Many complain about gnuplot, but what I've seen is near as good as Matlab in appearance and functionality. In fact, the gnuplot implementation has one advantage: if one is running a long simulation that occassionally puts out a plot, because gnuplot is a separate process, the plot can be viewed while the simulation is still running. That doesn't work so well in a single-threaded app.

Here are some bugs...

The X11 terminal has a problem with all characters appearing as Greek when some other piece of text in the plot has a Greek character. Here are some commands and the results I see:

plot([1:50])
title('Here is English text')
<Text appears as it should in X11 terminal>
xlabel('\omega H')
<The title changes to all Greek characters>
title('Here is English text')
<Nothing changes>
title('Here is English text \omega')
<The title appear appropriately in English mixed with Greek>

So there is some odd behavior there, but perhaps it is gnuplot that has a bug. Other terminals seem to be OK. If developers think this is a gnuplot issue, I will check into it.

It does appear to be a gnuplot issue. Try the commands below ...

set term x11 enhanced
set xlabel "{/Symbol w} A B C D" font ",14"
plot sin(x)

If you change the default axes font to something specific ...

set (0, "defaultaxesfontname", "Arial")

Your example should work correctly.

A colorbar will shift as a result of printing the plot in PostScript. Only after a PostScript print is there a problem.

imagesc(rand(50))
colorbar()
<colorbar looks good in X11 terminal>
print('-depsc2', 'junk.eps')
<colorbar still looks good in X11>
print('-dpsc2', 'junk.ps')
<colorbar shifts leftward in X11, but in PostScript it is in the correct positon>

The colorbar will look correct in the PostScript plot, but only for the first plot. Subsequent plots will have the colorbar wrong in PostScript. I do see some special consideration in the Octave scripts for the PostScript case; perhaps a variable is not being set back to the correct value.

The colorbar needs more work. There are other examples where it does not render properly. I you make another call to colorbar it should fix itself ... which indicates that a listener should be able to fix it. I looked at this a few weeks ago but didn't find a proper solution.

Perhaps it makes sense to add some additional tests to colorbar that illustrate the problem?

In particular, combinations with "axis equal" and/or "axes square" cause problems.

%!demo
%! clf
%! plot([0, 2])
%! colorbar ("east")
%! axis square

%!demo
%! clf
%! plot([0, 2])
%! colorbar ("eastoutside")
%! axis square

%!demo
%! clf
%! plot([0, 2])
%! colorbar ("east")
%! axis equal

%!demo
%! clf
%! plot([0, 2])
%! colorbar ("eastoutside")
%! axis equal

Regarding the fontsize problems, I'll responds separately. (it's more complicated than it appears).

Ben


reply via email to

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