J'essaie d'utiliser gnuplot 5.0 pour tracer un tableau 2D de données sans marges, bordures ou axes ... juste une image 2D (.png ou .jpg) représentant certaines données. Je souhaite avoir chaque élément de réseau pour correspondre exactement à un pixel de l'image avec aucune mise à l' échelle / interpolation , etc et pas de pixels blancs supplémentaires sur les bords.
Jusqu'à présent, lorsque j'essaie de définir les marges à 0 et même en utilisant le pixels
drapeau, je reste avec une rangée de pixels blancs sur les bordures droite et supérieure de l'image.
Comment puis-je obtenir juste un fichier image avec une représentation pixel par pixel d'un tableau de données et rien de plus?
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
Exemple de données de 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
liste?