如何将GNUPLOT保存为正确的尺寸和分辨率(以毫米为单位)?

How to save a GNUPLOT to the correct size and resolution in mm?

提问人:Diego Fernando Pava 提问时间:10/25/2023 更新时间:10/25/2023 访问量:31

问:

我使用GNUPLOT生成一个绘图,该绘图就像一个有水平线和垂直线的网格。浅蓝色线条相距 1 毫米,深蓝色线条相距 5 毫米(共 250 毫米宽 x 195 毫米高)

所以我想将图像保存为 png 或 jpg,以便它以正确的大小打印并且不会丢失线条分辨率。

对于绘图,我使用 5000x3900 的轴,每 20 条打印一条浅蓝色线,每条 100 条深蓝色线条。

正如你所看到的,当我将图像保存在png上时,网格退化了很多。

我必须如何保存它才能获得合适的 1mm 网格?

rasterized plot

图像 png gnuplot jpeg dpi

评论


答:

1赞 Ethan 10/25/2023 #1

如果您想要高分辨率的任何东西,则不应选择jpeg作为输出格式。它是一种“有损”压缩方案,本质上会失去分辨率以减小文件大小。

要在 gnuplot 中使用 png,您可以以像素为单位给出明确的分辨率。然而,这并不能直接转化为毫米或英寸等物理测量值。这涉及由打印机或查看程序完成的额外级别的每毫米像素或每英寸像素缩放。

要生成具有特定分辨率或对象位置(以毫米为单位)的输出,应使用矢量输出格式 - postscript、pdf 或 svg。例如,您可以将总输出页面大小设置为 25 厘米 x 19.5 厘米,使其足够大以容纳您的绘图,然后要求网格和页面边缘之间没有边距。因此,网格应该填满整个页面,因此 x 轴和 y 轴单位以毫米为单位。您可能需要进一步调整线宽,例如 .set term pdf linewidth 0.5 size 25.0cm, 19.5cm

set term pdf size 25.0cm, 19.5cm
set output 'grid.pdf'

set lmargin screen 0.0; set rmargin screen 1.0
set bmargin screen 0.0; set tmargin screen 1.0

set xrange [0:5000]
set yrange [0:3900]

set tics format ""       # no tic labels
set tics scale 0.01, 0.01 # very small tic marks

set xtics 100
set mxtics 5      # 5 minor tics per major tic
set ytics 100
set mytics 5      # 5 minor tics per major tic

set linetype 101 lc "blue" lw 1
set linetype 102 lc "blue" lw 0.5
set grid x mx y my lt 101, lt 102


plot x*sin(x/500.) with lines lc "red"

我将附加从 pdf 输出转换的 600 dpi 的 png 图像,但这种转换显然会丢失原始分辨率,因此这主要只是为了确认脚本是否有效。enter image description here

评论

0赞 Diego Fernando Pava 10/26/2023
比你为此