gpt4 book ai didi

image - gnuplot:如何为每个像素绘制一个2D数组元素而没有空白

转载 作者:行者123 更新时间:2023-12-04 07:30:52 24 4
gpt4 key购买 nike

我正在尝试使用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

extra pixels

最佳答案

某些gnuplot终端通过创建一个包含图像的png文件,然后将其链接到结果图内来实现“带有图像”。直接使用该单独的png图像文件将避免任何页面布局,页边距等问题。在这里,我使用canvas终端。情节本身就被扔掉了。我们保留的只是使用所需内容创建的png文件。

gnuplot> set term canvas name 'myplot'
Terminal type is now 'canvas'
Options are ' rounded size 600,400 enhanced fsize 10 lw 1 fontscale 1 standalone'
gnuplot> set output '/dev/null'
gnuplot> plot "T.dat" binary array=400x200 format="%f" with image
linking image 1 to external file myplot_image_01.png
gnuplot> quit

$identify myplot_image_01.png
myplot_image_01.png PNG 400x200 400x200+0+0 8-bit sRGB 348B 0.000u 0:00.000

关于image - gnuplot:如何为每个像素绘制一个2D数组元素而没有空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59056181/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com