|
From: Daniel J S. <dan...@ie...> - 2012-09-08 22:05:49
|
On 09/08/2012 03:42 PM, Ethan Merritt wrote:
> On Saturday, 08 September 2012, Daniel J Sebald wrote:
>> I see there is new behavior for the option "reverse" for gnuplot version
>> 4.7+. It seems to me the change is that "{no}reverse" now only applies
>> to autoscaling. (In fact, the documentation ostensibly says that.)
>>
>> Could someone write a one or two sentence summary of why the change.
>> E.g., the previous behavior was too confusing or caused a conflict? I
>> just want to be able to explain why the change if asked.
>
> The old behaviour was bizarre. Example:
> gnuplot> set xrange [1:0]
> gnuplot> show xrange
> set xrange [ 0.00000 : 1.00000 ] reverse nowriteback
Well, I don't see why "reverse" should have been set on account of that.
It should have been
**
gnuplot> show xrange
set xrange [ 1.00000 : 0.00000 ] noreverse nowriteback
> gnuplot> set xrange [0:1]
> gnuplot> show xrange
> set xrange [ 0.00000 : 1.00000 ] reverse nowriteback
>
> Notice that the "reverse" property is now stuck, and no ordinary
> sequence of autoscaling/autorange/set xrange commands will unstick it.
> Only an explicit "set xr [<something>:<something>] noreverse"
> will work, but inside a script you can't know in advance when this
> might be necessary, and at that point you may not know what the
> correct<something> is anyhow.
Yes, bizarre.
> See also various old bug reports going back 10 years or so, e.g. #230686.
>
>>
>> Reverse axes aren't used real often, except in the case of y-axis and
>> images where it is quite common to see the origin in the upper left
>> corner of a plot. (Octave will need a change to address this.)
>
> You have neglected that case of inverted axis scaling x2 = F(1/x1)
> Consider, for example:
> http://skuld.bmsc.washington.edu/people/merritt/gnuplot/linkedaxes/
But x2, y2 are not controlled by anything inside a plot statement. From
the "plot->range" documentation:
plot [-pi:pi] [-1.3:1.3] [-1:1] sin(t),t**2
Note that the x2range and y2range cannot be specified here---`set x2range`
and `set y2range` must be used.
OK, so rethinking what I first wrote as an alternative, its seems a
simpler alternative might be to not modify the "{no}reverse" setting on
the basis of the in-command ranges (** above). I'm just wondering if
people are more inclined to think that "reverse" means to reverse the
axis direction all of the time rather than just for the one case of
autoscaling.
Dan
|