Felix
Felix

Reputation: 739

gnuplot: plot image without white border

I would like to plot image data using gnuplot, without any border, tics, etc. Just the image. Unfortunately, gnuplot always draws the bottom line white. Here is an example of what should result in an entirely black 3x3 pixel image:

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

The result is a picture with one white line and 2 black pixel lines:

enter image description here

Here is a magnified screenshot with a gray frame of the image viewer:

enter image description here

Any ideas how to solve this?

I am using gnuplot 5.0

Thank you for your help.

Upvotes: 4

Views: 4072

Answers (1)

Christoph
Christoph

Reputation: 48390

I think having a 3px times 3px image is not a proper use case. Of course, representing a 3x3 data matrix is perfectly valid!

Seems, like there are some problems when plotting pixel-based data with some terminals. Since you said, that in the end you want to have a vector image (which would in any case affect only some arrows you draw on top of the pixel-data), I had a look at some vector formats only, using your example testdata.dat and the script 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 doesn't work, has some boundary artifacts.
  • postscript works fine, I used

    set terminal postscript eps level3 size 8cm,1.6cm
    set output 'testdata.eps'
    load 'testdata.gp'
    set output
    system('epstopdf testdata.eps')
    
  • tikz works fine as well:

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

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

I don't know yet, what the actual problem with the cairo terminals is.

Upvotes: 2

Related Questions