gnuplot:如何在每个像素上无边距绘制一个2D数组元素
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gnuplot:如何在每个像素上无边距绘制一个2D数组元素相关的知识,希望对你有一定的参考价值。
我正在尝试使用gnuplot 5.0绘制2D数据数组,没有边界,边框或轴...只是代表某些数据的2D图像(.png或.jpg)。我想使用无缩放/插值等和边缘没有多余的白色像素。 每个数组元素对应于图像中的一个像素。
到目前为止,当我尝试将页边距设置为0甚至使用pixels
标志时,在图像的右边界和顶部边界上我仍然留下一排白色像素。
如何获取仅具有数据数组的逐像素表示形式的图像文件,而没有其他内容?
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
来自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
我正在尝试使用gnuplot 5.0绘制2D数据数组,没有边界,边框或轴...只是代表某些数据的2D图像(.png或.jpg)。我想让每个数组元素都可以...
答案
这应该是一个容易的任务,但是显然不是。以下可能是一个(麻烦的)解决方案,因为所有其他尝试都失败了。我怀疑某些图形库存在一个问题,以gnuplot用户身份可能无法解决。
以上是关于gnuplot:如何在每个像素上无边距绘制一个2D数组元素的主要内容,如果未能解决你的问题,请参考以下文章