我可以用 gnuplot 绘制一维热图吗?

Can I plot 1D heatmap with gnuplot?

我正在尝试使用 gnuplot 中的两列数据(x 值和 y 值)绘制一维热图。使用我的数据绘制的线图是这样的:

折线图:

然而经过一些尝试我只能做到这一点:

我有什么:

而我想要得到的是这样的东西。 (仅示例)

我想要的:

我使用的gnuplot脚本如下:

set view map
set size ratio 0.2
unset ytics
unset key
splot 'test.dat' u 1:(1):2 palette

有人可以帮忙吗?

所以您想使用 y 轴作为假尺寸以增加第二条线图的宽度? 当然,这是例如boxxyerror 可能会出现显式 ymin 和 ymax 错误,这些错误会填充 yrange.

set xr [-10:10]
set yr [0:1]
xspacing = 0.1
plot '+' u 1:(0.5):(-xspacing):(+xspacing):(0):(1):(sin()) w boxxyerror lc palette

在您的情况下,将 sin(x) 替换为您数据的相应列。对于特殊文件 '+',x 宽度不起作用,但在您的情况下,您可能需要使用适当的 xspacing 来避免点之间的白色间隙。

我会这样做:

unset key
set xrange noextend
set offset 0,0,graph .05,graph .05
set palette cubehelix negative

plot 'foo.dat' using 0:3 with lines lc "black", \
     'foo.dat' using 0:(70):3 with lines lc palette lw 10