gnuplot:如何在图形中插入图像?

gnuplot: How to insert image in graph?

我在 Ubuntu 18.04 的 WSL 中使用 gnuplot 5.2,我正在尝试在我生成的图形中拟合 png 图像。

我正在使用的名为“data_sof”的数据是:

loc Exp Measured
0. 3 3.2
0.05 1 1.1
0.10 1.5 1.33
0.15 5.34 5.8
0.20 4.26 5.22
0.25 5.70 4.88
0.30 6.21 6.17
0.35 5.15 5.10

我用来绘制数据的代码(作为脚本)如下:

set terminal pngcairo font "helvetica,20" size 1000, 800
set border lw 1.5
set tmargin 1.5
set rmargin 20
set xrange [0:7]
set yrange [0:0.45]
set grid
set output "stack.png"

plot \
     "data_sof" u 2:1 w p ps 1.5 pt 2 lc rgb "#3D554F", \
     "data_sof" u 3:1 w p ps 1.5 pt 4 lc rgb "#56B4E9"

生成的图表如下所示:

我想做的是将图像 image.png 放在主要情节旁边的专用白色 space 上。

我试过如下附加代码:

plot \
     "data_sof" u 2:1 w p ps 1.5 pt 2 lc rgb "#3D554F" notitle, \
     "data_sof" u 3:1 w p ps 1.5 pt 4 lc rgb "#56B4E9" notitle, \
     "image.png" binary filetype=png with rgbalpha notitle

但我得到以下输出,这不是预期的。

我也试过用 dxdy 关键字缩放图像但没有成功。

image.png可以在这里找到:image.png

编辑: 使用不同工具生成的所需输出是:

非常感谢任何帮助!

我的理解是,如果您“绘制”图像,则它必须在图表内。对于您的情况,您可以使用 multiplot,检查 help multiplot。您只需设置原点和大小并删除第二个图的边框和标签。此外,为了避免失真,您将第二个绘图的绘图大小比率设置为与您的图像相同(在您的情况下为 973 x 673 像素)。检查以下示例作为进一步调整的起点。

代码:

### add/plot image next to graph
reset session

$Data <<EOD
0.      3       3.2
0.05    1       1.1
0.10    1.5     1.33
0.15    5.34    5.8
0.20    4.26    5.22
0.25    5.70    4.88
0.30    6.21    6.17
0.35    5.15    5.10
EOD

unset key

set multiplot
    set origin 0,0
    set size   0.6,1.0
    set grid x,y
    plot $Data u 2:1 w p ps 1.5 pt 2 lc "red",\
            '' u 3:1 w p ps 1.5 pt 4 lc "blue"
    
    set origin 0.6,0.1
    set size   0.4,0.5
    set border 0
    unset tics
    unset label
    set size ratio 973./673
    plot "image.png" binary filetype=png with rgbalpha
    
unset multiplot
### end of code

结果:

我知道您指定了 gnuplot 5.2 版,但为了完整起见,我要指出在 5.4 版中有单独的数据结构类型 pixmap 保存要放置在任意位置的图像或剧情外

set pixmap 1 "image.png" 
set pixmap 1 at screen 0.75, graph 0.0 width screen 0.2
set rmargin at screen 0.7
plot "data_sof" u 2:1 w p ps 1.5 pt 2 lc rgb "#3D554F" notitle, \
     "data_sof" u 3:1 w p ps 1.5 pt 4 lc rgb "#56B4E9" notitle