|
From: Dima K. <gn...@di...> - 2022-05-16 23:10:55
|
Hi. I'm having trouble with contoured plots, and I'm guessing there's at
least one gnuplot bug here. Can I please get some pointers?
I make a binary data file. This is an regular matrix of 32-bit floats:
perl -E 'for $i (0..99) { for $j (0..89) { $f=sin($i/30.)+cos($j/5.); print pack("f",$f); }}' > /tmp/sincos.float32
For convenience I'm attaching this data.
I can successfully plot a heatmap:
splot "sincos.float32" binary array=(90,100) format="%float" with image
I can also transform the data and plot:
splot "sincos.float32" binary array=(90,100) format="%float" using ($1+100) with image
This all works. Without the transform, I can also plot contours:
set view map
set contour base
splot "sincos.float32" binary array=(90,100) format="%float" with lines nosurface
But if I add the transform, it is ignored by the contours. THIS doesn't
work:
set view map
set contour base
splot "sincos.float32" binary array=(90,100) format="%float" using ($1+100) with lines nosurface
There's no error message. It just produces the untransformed data.
Second issue. I'd like to plot boxed contour labels. This works OK with
ASCII matrix data, but with binary data it doesn't work. I run this
gunplot script:
set view map
set contour base
splot "sincos.float32" binary array=(90,100) format="%float" with labels boxed nosurface
And I see this:
"cmd" line 3: warning: Couldn't slurp 72000 bytes (return was 36000)
splot "sincos.float32" binary array=(90,100) format="%float" with labels boxed nosurface
^
"cmd" line 3: All points x value undefined
For whatever reason it's trying to read 8 bytes per point instead of 4.
Some brief debugging tells me it thinks there're two values to read from
each point, when in reality there's just one.
Thoughts?
Thanks!
|