Я пытаюсь построить тепловую карту с RSSI беспроводной сети, используя gnuplot. До сих пор мне это частично удавалось. Я получил следующую картину, используя следующий код:
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
График правильный, но я хотел вставить растение в качестве фонового изображения. Сначала я думал использовать функцию мультиплота, сначала рисуя фоновое изображение, а поверх него — тепловую карту. Проблема в том, что я не смог найти никакой документации о том, как сделать цвета тепловой карты прозрачными, и в результате тепловая карта полностью закрывает фоновое изображение.
Я на правильном пути? Если да, то как сделать цвета на тепловой карте прозрачными, чтобы я мог видеть и фоновое изображение, и тепловую карту? Или есть лучший подход к решению этой проблемы?
Большое спасибо.
with rgbalpha
, но тогда вы не сможете использовать определенную палитру для цветов. Но так как вы все равно определили свои собственные функции для красного, зеленого и синего, это не проблема. Но это также означает некоторую возню с цветовыми диапазонами и прочее, чтобы получить правильную цветовую палитру. Чтобы сначала нарисовать фоновое изображение, вы можете использовать что-то вродеplot 'bg.png' binary filetype=png w rgbimage, "dados.dat" using 1:2:(rsc($3)):(gsc($3)):(bsc($4)):(127) with rgbalpha
.rsc
и т.д. - это ваша функцияr(x)
с адекватным масштабированием. - person Christoph   schedule 14.08.2013