Составьте график с изображением и графиком матрицы файла данных с прозрачностью

Я пытаюсь построить сюжет, используя изображение карты города

(карта Гента)

и наложи это

введите описание изображения здесь

которые совпадают с улицами этого места, и образуют такую ​​фигуру

введите описание изображения здесь

произведено через GIMP.

Я хотел бы создать график, аналогичный приведенному выше, с помощью Gnuplot, наложив два изображения с картой сзади и данными pher.txt спереди.

Я могу использовать этот скрипт для построения карты:

set encoding iso_8859_1
set term postscript eps enhanced color size 5in,5in
set output 'image.eps'
unset key; unset tics; unset border
set size ratio -1
set size square
set lmargin screen 0
set bmargin screen 0
set rmargin screen 1
set tmargin screen 1
plot 'ghent0.png' binary filetype=png with rgbimage

заимствовано из этой ссылки Gnuplotting для построения карты.

Для построения тепловой карты я использую этот код:

set terminal pngcairo nobackground #size 800,800
# set encoding iso_8859_1
# set term postscript eps enhanced color size 5in,5in
set output 'foo.png'
set size square
unset xtics 
unset ytics
val = 0
set autoscale xfix
set autoscale yfix
set cbrange [0:9]
set yrange [:] reverse
# plot 'pher.txt' matrix using ($1 == val ? NaN : $1) with image notitle
plot 'pher.txt' matrix with image notitle

Чтобы сделать черный цвет прозрачным, я попробовал plot 'pher.txt' matrix using ($1 == val ? NaN : $1) with image notitle заимствовать из "Прозрачность для определенных значений в матрице ...", которая предназначена для указания Gnuplot помещать значения NaN там, где есть 0 в файле данных pher.txt матрицы. Однако это не работает. Кроме того, необходимо изменить размер двух слоев (карта изображения и карта интенсивности с прозрачным черным цветом), чтобы линии карты совпадали с улицами карты.

Примечание: изображение карты и файл pher.txt находятся по этой ссылке MapDatafile

С Уважением


person pablo    schedule 12.04.2018    source источник


Ответы (1)


Когда вы plot ... matrix with image, значения изображения находятся в третьем столбце, а не в первом. Вот решение, которое отображает эту карту в системе координат (x, y), а ваши данные - в системе координат (x2, y2). Таким образом, вы измените масштаб последнего относительно первого, просто установив x2range и y2range:

set size square
set xtics nomirror
set ytics nomirror
set x2tic
set y2tic
set x2range [-1:200]
set y2range [-1:204] reverse
set autoscale noextend
set cbrange [0:9]
plot 'ghent0.jpg' binary filetype=jpg with rgbimage, \
     'pher.txt' matrix using 1:2:($3 == 0 ? NaN : $3) axes x2y2 with image notitle

введите описание изображения здесь

person user8153    schedule 12.04.2018