3

我正在尝试使用 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 功能,先绘制背景图像,然后再绘制热图。这样做的问题是我找不到任何关于如何使热图的颜色透明的文档,因此热图完全覆盖了背景图像。

我在正确的轨道上吗?如果是,我怎样才能使热图上的颜色透明,以便我可以看到背景图像和热图?或者有没有更好的方法来解决这个问题?

非常感谢。

4

1 回答 1

1

这可能很有趣: http: //gnuplot-surprising.blogspot.de/2011/09/gnuplot-background-image.html

它展示了如何让 gnuplot 显示 PNG。假设可以将该图像放在“后面”(在 gnuplot 的术语中),并获得要对齐的坐标(gnuplot 的二进制关键字“dx”、“dy”、“dz”和“origin”可能与此处相关),它可能会解决你的问题。

于 2016-08-28T06:17:15.703 回答