Próbuję użyć gnuplot 5.0, aby wykreślić tablicę 2D danych bez marginesów, ramek lub osi ... tylko obraz 2D (.png lub .jpg) reprezentujący niektóre dane. Chciałbym mieć każdy element tablicy odpowiada dokładnie jeden piksel w obrazie z żadnym skalowanie / interpolacji etc i bez dodatkowych białych pikseli na krawędziach.
Do tej pory, kiedy próbuję ustawić marginesy na 0, a nawet przy użyciu pixels
flagi, wciąż jestem z rzędem białych pikseli po prawej i górnej granicy obrazu.
Jak mogę uzyskać tylko plik obrazu z reprezentacją tablicy danych piksel po pikselu i niczym więcej?
skrypt 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
Przykładowe dane z 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
formacie listy?