Sto cercando di usare gnuplot 5.0 per tracciare un array di dati 2D senza margini o bordi o assi ... solo un'immagine 2D (.png o .jpg) che rappresenta alcuni dati. Vorrei avere ogni elemento dell'array corrispondere esattamente a un pixel nell'immagine con alcuna scalatura / interpolazione etc e nessun pixel bianchi supplementari ai bordi.
Finora, quando provo a impostare i margini su 0 e anche usando la pixels
bandiera, rimango ancora con una fila di pixel bianchi sui bordi destro e superiore dell'immagine.
Come posso ottenere solo un file di immagine con una rappresentazione pixel per pixel di un array di dati e niente di più?
script gnuplot:
#!/usr/bin/gnuplot --persist
set terminal png size 400, 200
set size ratio -1
set lmargin at screen 0
set rmargin at screen 1
set tmargin at screen 0
set bmargin at screen 1
unset colorbox
unset tics
unset xtics
unset ytics
unset border
unset key
set output "pic.png"
plot "T.dat" binary array=400x200 format="%f" with image pixels notitle
Dati di esempio da Fortran 90:
program main
implicit none
integer, parameter :: nx = 400
integer, parameter :: ny = 200
real, dimension (:,:), allocatable :: T
allocate (T(nx,ny))
T(:,:)=0.500
T(2,2)=5.
T(nx-1,ny-1)=5.
T(2,ny-1)=5.
T(nx-1,2)=5.
open(3, file="T.dat", access="stream")
write(3) T(:,:)
close(3)
end program main
x y z
formato elenco?