octave-maintainers
[Top][All Lists]
Advanced

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

Re: colorbar lefts multiplot


From: Ben Abbott
Subject: Re: colorbar lefts multiplot
Date: Wed, 01 Apr 2009 19:39:37 -0400


On Apr 1, 2009, at 5:44 PM, Petr Mikulik wrote:

        Hello Ben,

I've just discovered yet another bug (seems to be bug in 3.1.55, not in
3.0.3):

hold on
colorbar
imagesc(1./hilb(2));
hold off

hold on
imagesc(1./hilb(4));
hold off

Note that it does not hurt saying
        unset multiplot
if 'multiplot' was used somewhere in past and there is such a danger of
having multiplot on after some premature crash.

It may be a few days before I have time to dig into this. Do you have a
suggestion for what should be changed Octave's sources?

As far as I know you are now avoiding "set colorbox; replot" of gnuplot,
then I don't know.


I thought that each command such as "colorbar", "axis xy", "title 'bla'", etc., forces an immediate replot of the whole drawing canvas. Therefore I
wanted to test what is faster and with less redrawings:

1:
imagesc(1./hilb(1024))
colorbar; axis xy; title 'bla'; xlabel 'x'; ylabel 'y'

2:
hold on
colorbar; axis xy; title 'bla'; xlabel 'x'; ylabel 'y'
imagesc(1./hilb(1024))
hold off

3:
set (gcf, 'visible', 'off')
imagesc(1./hilb(1024))
colorbar; axis xy; title 'bla'; xlabel 'x'; ylabel 'y'
set (gcf, 'visible', 'on')

I was surprised I cannot see speed difference easily.
Thus I would like to ask: which sequence is the most efficient? What is the
number of canvas "(re)plots" in each case -- 1 or 6?

---

Petr

Hi Petr,

I came along after the architecture for the gnuplot backend was already in place. So I may get some of this wrong ... My understanding is that gnuplot_drawnow.m is called for each "replot".

You can verify my understanding by placing the following code at the top of gnuplot_drawnow()

        persistent num_replots = 1
        fprintf ("replots = %d\n", num_replots++)

The counter can be reset by "clear gnuplot_drawnow"

For your first example, and when the lines are entered from the command line, there is one replot for each line (2 total). If any of these are run from a script, you'll only get one call to gnuplot_drawnow.

When the "visible" property is "off" gnuplot_drawnow is not called.

Thus (1) and (2) produce 2 plot sequences (from the command line), and (3) only 1.

However, if you enter the following at the command line ...

        imagesc(1./hilb(1024))
        colorbar
        axis xy
        title 'bla'
        xlabel 'x'
        ylabel 'y'

You'll get 6.

Ben





reply via email to

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