[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