Estou tentando usar o gnuplot 5.0 para plotar uma matriz de dados 2D sem margens, bordas ou eixos ... apenas uma imagem 2D (.png ou .jpg) representando alguns dados. Eu gostaria de ter cada elemento da matriz para corresponder a exatamente um pixel da imagem com nenhuma escala / interpolação etc e não pixels brancos extras nas bordas.
Até agora, quando tento definir as margens como 0 e mesmo usando a pixels
bandeira, ainda resta uma linha de pixels brancos nas bordas direita e superior da imagem.
Como posso obter apenas um arquivo de imagem com representação pixel por pixel de uma matriz de dados e nada a mais?
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
Dados de exemplo do 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 de lista?