gnuplot:打印没有白色边框的图像

gnuplot:打印没有白色边框的图像,gnuplot,Gnuplot,我想使用gnuplot绘制图像数据,没有任何边框、tics等。只绘制图像。不幸的是,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 si

我想使用gnuplot绘制图像数据,没有任何边框、tics等。只绘制图像。不幸的是,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
结果是一张有一条白线和两条黑像素线的图片:

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

有什么办法解决这个问题吗

我正在使用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'
    

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

我意识到这对您没有多大帮助,但考虑到gnuplot是为绘制图表而设计的,我认为尝试绘制3x3图像是对软件的滥用,不符合其意图。我只是尝试了一下,而7x7大小的图像似乎是不会留下残留白线的最小尺寸。考虑增加你的图像大小。3x3图像是一个演示效果的例子,使它尽可能简单。图像本身显示了科学数据,一个典型的400x80像素大小的向量场。我喜欢gnuplot,因为我还可以添加箭头并将其保存为矢量图形,例如pdf。如果你知道任何其他软件做这项工作,请让我知道。在这里,你可以找到我想要绘制的数据:它是400x80像素大,gnuplot在底部画了一条白色像素线。最重要的是,这条线失去了最上面的像素线。我建议在上问这个问题。谢谢你的这些解决方法。使用svg时,图像的像素结构丢失,这对我的数据来说是个问题。然而,eps工作得非常好。对于SVG,像素结构不应该丢失,这可能是您的查看器的一个伪影。对于svg,将生成一个链接到(name
gp_image…PNG
)的PNG好的,您是对的。当我将分辨率设置为高于图像中数据点的数量时,它的行为与png终端不同。我使用每个维度多4倍的像素来获得尖锐的箭头,svg终端进行插值来确定额外像素的值。实际上,如果你知道如何使用它,这是一个非常好的特性。