Ich versuche, mit gnuplot 5.0 ein 2D-Datenarray ohne Ränder, Ränder oder Achsen zu zeichnen ... nur ein 2D-Bild (.png oder .jpg), das einige Daten darstellt. I haben möchte jedes Array - Element auf genau ein Pixel in dem Bild zu entsprechen , mit keiner Skalierung / Interpolation usw. und ohne zusätzliche weißen Pixel an den Rand.
Wenn ich bisher versuche, die Ränder auf 0 zu setzen und sogar das pixels
Flag zu verwenden, bleibt mir immer noch eine Reihe weißer Pixel am rechten und oberen Bildrand übrig.
Wie kann ich nur eine Bilddatei mit einer pixelweisen Darstellung eines Datenarrays und nichts extra erhalten?
Gnuplot-Skript:
#!/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
Beispieldaten aus 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
Listenformat vorliegen?