使用图像和具有透明度的数据文件矩阵图绘制图

时间:2018-04-12 11:46:07

标签: plot gnuplot transparency alpha-transparency

我正在尝试使用城市地图图片制作情节

(map of Ghent)

并叠加此

enter image description here

匹配此位置的街道,并生成这样的图形

enter image description here

通过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

为了使黑色透明,我尝试了从Transparency for specific values in matrix ...借来的plot 'pher.txt' matrix using ($1 == val ? NaN : $1) with image notitle,它告诉Gnuplot将NaN值放在pher.txt矩阵数据文件中有0的位置。但是,它不起作用。 此外,应调整两个图层(图像地图和黑色透明的热图),以使热图线与地图的街道相匹配。

注意:地图图片和文件pher.txt位于此链接MapDatafile

此致

1 个答案:

答案 0 :(得分:2)

当您sorted_indexes = argsort(dists) best_index = sorted_indexes[0] 时,图像值位于第三列,而不是第一列。这是一个解决方案,绘制(x,y)坐标系中的地图和(x2,y2)坐标系中的数据。这样,只需设置plot ... matrix with imagex2range即可将后者相对于前者重新缩放:

y2range

enter image description here