Growing x11 plot window (was: Flickering movies)
Ben Abbott
bpabbott at mac.com
Fri Jul 31 06:37:18 CDT 2009
On Jun 27, 2009, at 1:15 PM, Ben Abbott wrote:
> On Jun 25, 2009, at 8:38 PM, Ben Abbott wrote:
>
>> On Jun 25, 2009, at 4:05 PM, Ben Abbott wrote:
>>
>>> On Thursday, June 25, 2009, at 10:45AM, "Marco Caliari" <marco.caliari at univr.it
>>> > wrote:
>>>> Dear maintainers,
>>>>
>>>> I'm not sure I will describe a bug or just a different behavior,
>>>> so I'm
>>>> writing to the maintainers' list.
>>>> The execution of the following code in Octave 3.0.5
>>>>
>>>> x = linspace(-1,1);
>>>> for i = 1:50
>>>> plot(x,i*x.^2)
>>>> axis([-1,1,0,50])
>>>> pause(0.1)
>>>> end
>>>>
>>>> produces a nice and fluent "movie". In particular, the axis box
>>>> seems
>>>> fixed (it is fixed to my eyes), and only the curve inside moves.
>>>> With
>>>> 3.2.0, I get a very flickering movie, with the axis box clearly
>>>> redrawn
>>>> at each step. What is strange, moreover, is that if I change
>>>>
>>>> pause(0.1)
>>>>
>>>> with
>>>>
>>>> pause(0.01)
>>>>
>>>> the axis box changes its dimensions during the loop and so the
>>>> illusion of
>>>> a movie disappears. I'm using gnuplot 4.2.5.
>>>
>>> Marco, I see the same effect.
>>>
>>> This "feature" has been present since Gnuplot allowed the x11
>>> window position and size to be set. Gnuplot allows the x11 window
>>> position and size to be set for gnuplot 4.2.5 and later.
>>>
>>> Unfortunately, I've been unable to demonstrate this behavior using
>>> gnuplot scripts (i.e. no Octave). Thus, I'm inclined to conclude
>>> the problem is with the plot stream octave send's to gnuplot, but
>>> have been unable to debug (isolate) the problem.
>>>
>>> Ben
>>
>> Marco / others
>>
>> I've taken a fresh look at this and have found a simple gnuplot
>> script that demonstrates (for me) the problem of the figure window
>> changing its dimension (nearly always resulting in vertical
>> growth). I've attached a copy of the script.
>>
>> The script is very simple
>>
>> set terminal x11
>> set multiplot; plot sin(x); unset multiplot;
>> set multiplot; plot sin(x); unset multiplot;
>> set multiplot; plot sin(x); unset multiplot;
>> set multiplot; plot sin(x); unset multiplot;
>> set multiplot; plot sin(x); unset multiplot;
>> set multiplot; plot sin(x); unset multiplot;
>> ...
>>
>> My experience is that the x11 figure window's growth (or change in
>> dimension) is related to timing. A sufficiently fast computer may
>> not produce the problem.
>>
>> In any event, if anyone is running gnuplot 4.2.5 or above, I'd
>> appreciate it if they'd run this script and report back what
>> happens. Just type ...
>>
>> gnuplot --persist "debug.gp"
>>
>> ... or run gnuplot and type
>>
>> load "debug.gp"
>>
>> Thanks,
>> Ben
>
> I've produced a initial changeset that attempt to work around the
> problem.
>
> When there are multiple axes or, at least one image objects,
> gnuplot's multiplot is set (meaning the growth problem remains). For
> other plots, multiplot is unset (meaning the growth problem is
> absent).
>
> I've tried gnuplot 4.2.3, 4.2.5, and the developers 4.3.0. I see no
> new problems., and only see a growing window for running 4.2.5 for
> 4.3.0, and when multiplot is set.
>
> The figure window growth problem remains obvious for me when running
> the colorbar demos.
>
> Ben
>
> <changeset.patch>
Update.
The problem with the growing window has been fixed in gnuplot's sources.
http://sourceforge.net/tracker/?func=detail&aid=2812476&group_id=2055&atid=102055
I found a bug with the prior changeset when printing. The attached
resolves that.
This change is a bit hacky. I am only able to avoid a flicking x11
window for a plot with a single axes object and no image objects.
If there are no suggestions for a better implementation, I'll push
later today.
Ben
-------------- next part --------------
A non-text attachment was scrubbed...
Name: changeset.patch
Type: application/octet-stream
Size: 4904 bytes
Desc: not available
Url : https://www-old.cae.wisc.edu/pipermail/octave-maintainers/attachments/20090731/f61c4e5a/attachment-0001.obj
-------------- next part --------------
More information about the Octave-maintainers
mailing list