|
From: Ethan M. <merritt@u.washington.edu> - 2008-01-04 19:47:11
|
On Friday 04 January 2008 03:42, Petr Mikulik wrote:
> > > "bug_logcb.gp", line 4: color axis has cb coord of -10; must be above 0
> > > for log scale!
> > >
> > > plot 'matrix.dat' matrix with image
> > >
> > > What has broken in cvs?
> >
> > But the error message is correct.
> > The cb values go negative and therefore log scale cannot work.
> >
> > I see that 4.2 does draw something, but I don't understand
> > what it is drawing. I'd say that 4.2 fails to detect the
> > error, while CVS is doing the right thing by reporting it.
>
> No, the error message is not correct, it should autoscale the cb-value to a
> lower positive value, as it does in the same case for "with image" for
> logged y or z axes. There must have been some change in cvs which broke this
> for "matrix with image".
>
> Gnuplot has been always excellent in handling negative ranges in log scales.
This is new to me, and does not seem to agree with the documentation:
help autoscale
When autoscaling, the axis range is automatically computed and the dependent
axis (y for a `plot` and z for `splot`) is scaled to include the range of the
function or data being plotted.
You are saying that for log scales, only the range of the data greater than
some positive value epsilon is to be scaled?
I can see how this makes sense for functions, but it strikes me as being
incorrect for actual data.
Anyhow, I don't quite understand what the equivalent result would be for
plots "with image". In the example you give below for log scale on y, only
points with f(x) > 0 are displayed on the plot. Would the equivalent for
"with image" be that individual pixels are only drawn if the value of f(x,y)
is positive? That is not what version 4.2 does.
And what would be the assignment of colors? Would you limit the colors
used in the bar to the color range corresponding to positive Z values?
That would be the logical equivalent of drawing only the positive region
on y in the example below. But that is not what 4.2 does.
> For example,
>
> gnuplot> set xrange [-10:10]; set log y; plot 1/x
Anyhow, I don't have any immediate guesses as to what changed between
4.2 and current cvs.
--
Ethan A Merritt
|