我正在尝试使用 gnuplot 使用无线网络的 RSSI 绘制热图。到目前为止,我部分实现了这一点。我得到了以下图片,使用以下代码:
set terminal pngcairo transparent enhanced font "arial,10" fontscale 1.0 size 1440, 900
set output "teste.png"
set size ratio -1
set xrange [ -0.5 : 3510.5 ]
set yrange [ -0.5 : 2480.5 ]
set noxtic
set noytic
r(x) = x >= 0.92 ? 0.0 / 7.0 : \
x >= 0.86 ? 1.0 / 7.0 : \
x >= 0.80 ? 2.0 / 7.0 : \
x >= 0.74 ? 3.0 / 7.0 : \
x >= 0.68 ? 4.0 / 7.0 : \
x >= 0.62 ? 5.0 / 7.0 : \
x >= 0.56 ? 6.0 / 7.0 : 7.0 / 7.0
g(x) = x >= 0.50 ? 1.0 : \
x >= 0.44 ? 6.0 / 7.0 : \
x >= 0.38 ? 5.0 / 7.0 : \
x >= 0.32 ? 4.0 / 7.0 : \
x >= 0.26 ? 3.0 / 7.0 : \
x >= 0.20 ? 2.0 / 7.0 : \
x >= 0.14 ? 1.0 / 7.0 : \
x == 0.00 ? 1.0 : 0.0
b(x) = x == 0.0 ? 1.0 : 0.0
set cbrange [ -99 : -49 ]
set cblabel "Intensidade (dBm)"
set cbtics -95, 3, -50
set palette function r(gray), g(gray), b(gray)
set colorbox horizontal user origin 0.7, 0.94 size 0.2, 0.01
plot "dados.dat" matrix title "Wireless A" with image
该图是正确的,但我想插入该地方的植物作为背景图像。起初,我想使用 multiplot 功能,先绘制背景图像,然后再绘制热图。这样做的问题是我找不到任何关于如何使热图的颜色透明的文档,因此热图完全覆盖了背景图像。
我在正确的轨道上吗?如果是,我怎样才能使热图上的颜色透明,以便我可以看到背景图像和热图?或者有没有更好的方法来解决这个问题?
非常感谢。