gnuplot 设置图像宽度与特定 DPI 的像素

gnuplot 设置图像宽度与特定 DPI 的像素

我需要使用 gnuplot 生成图像并给出以下指南

宽度=90 mm(255 pt),300 dpi 时的像素=1063,500 dpi 时的像素=1772,1000 dpi 时的像素=3543

我怎样才能生成宽度= 90毫米和像素= 1063为300 dpi的图像在gnuplot中我使用

set terminal pngcairo size 420,768 

但是如何将 x 和 y 转换为所需的宽度和像素

答案1

解决方案1

我假设您已经创建了一个尺寸正好为 420x768 的图形。要生成宽度为 1063 像素(300dpi 时为 90mm)的 PNG 图像而不改变图形的外观,请进行如下设置,

scale = 1063.0/420.0

set terminal pngcairo size 420*scale,768*scale fontscale scale linewidth scale pointscale scale

# PLOT HERE

在此设置中,图形的宽度和高度乘以 1063.0/420.0 = 2.53,并且字体大小、线宽和点大小按相同的系数缩放。

解决方案2

如果您想使用给定的 DPI 从头开始​​构建图形,那么以下终端设置怎么样,

dpi = 300 ## dpi (variable)
width = 90 ## mm (variable)
height = 164.5 ## mm (variable)

in2mm = 25.4 # mm (fixed)
pt2mm = 0.3528 # mm (fixed)

mm2px = dpi/in2mm
ptscale = pt2mm*mm2px
round(x) = x - floor(x) < 0.5 ? floor(x) : ceil(x)
wpx = round(width * mm2px)
hpx = round(height * mm2px)

set terminal pngcairo size wpx,hpx fontscale ptscale linewidth ptscale pointscale ptscale

# PLOT HERE

height使用764.0/420.0*90计算以保持原始图形的宽高比。

相关内容