Saya mencoba menggunakan gnuplot 5.0 untuk memplot data 2D array tanpa margin atau batas atau sumbu ... hanya gambar 2D (.png atau .jpg) yang mewakili beberapa data. Saya ingin memiliki setiap elemen array untuk berkorespondensi dengan tepat satu pixel dalam gambar dengan tidak ada skala / interpolasi dll dan tidak ada piksel ekstra putih di tepi.
Sejauh ini, ketika saya mencoba mengatur margin ke 0 dan bahkan menggunakan pixels
bendera, saya masih tersisa dengan deretan piksel putih di kanan dan batas atas gambar.
Bagaimana saya bisa mendapatkan hanya file gambar dengan representasi pixel-by-pixel dari array data dan tidak ada tambahan?
skrip 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
Contoh data dari 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
format daftar?