gnuplot:绘制没有白色边框的图像

gnuplot: plot image without white border

我想使用 gnuplot 绘制图像数据,没有任何边框、抽动等。只有图像。不幸的是,gnuplot 总是把底线画成白色。下面是一个应该生成全黑 3x3 像素图像的示例:

set term png size 3,3
set out 'test.png'


set xrange [0:2]
set yrange [0:2]
unset xlabel
unset ylabel
set lmargin 0
set rmargin 0
set tmargin 0
set bmargin 0
set size ratio -1
unset xtics
unset ytics
set border 0
unset key

p '-' w rgbimage
0 0 0 0 0
1 0 0 0 0
2 0 0 0 0
0 1 0 0 0
1 1 0 0 0
2 1 0 0 0
0 2 0 0 0
1 2 0 0 0
2 2 0 0 0
e

结果是一张有 1 条白线和 2 条黑色像素线的图片:

这是图像查看器的灰色框的放大屏幕截图:

有什么解决办法吗?

我正在使用 gnuplot 5.0

感谢您的帮助。

我认为 3px 乘以 3px 的图像不是一个合适的用例。当然,表示一个 3x3 数据矩阵是完全有效的!

好像在用某些终端绘制基于像素的数据时出现了一些问题。既然你说过,最后你想要一个矢量图像(无论如何它只会影响你在像素数据顶部绘制的一些箭头),我只看了一些矢量格式,使用你的例子testdata.dat 和脚本 testdata.gp

set autoscale xfix
set autoscale yfix
set margins 0,0,0,0
unset xtics
unset ytics
unset border
unset key

p 'testdata.dat' w rgbimage
  • pdfcairo 不起作用,有一些边界伪影。
  • postscript 没问题,我用了

    set terminal postscript eps level3 size 8cm,1.6cm
    set output 'testdata.eps'
    load 'testdata.gp'
    set output
    system('epstopdf testdata.eps')
    
  • tikz 也可以正常工作:

    set terminal tikz standalone externalimages size 8cm,1.6cm
    set output 'testdata.tex'
    load 'testdata.gp'
    set output
    system('pdflatex testdata.tex')
    
  • svg 工作正常:

    set terminal svg standalone size 800,160
    set output 'testdata.svg'
    load 'testdata.gp'
    

我还不知道,开罗终端的实际问题是什么。