我需要使用 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计算以保持原始图形的宽高比。