我经常在gnuplot提示shell中绘制图形,如下所示:
gunuplot> plot sin(x) with linespoints pointtype 3
Run Code Online (Sandbox Code Playgroud)
这个数字显示出来很棒.
今天,我将图表保存在一个.png文件中,如下所示:
gnuplot> set term png
gnuplot> set output "output.png"
gunuplot> plot sin(x) with linespoints pointtype 3
Run Code Online (Sandbox Code Playgroud)
然后,我打开output.png用eog在Ubuntu,就像这样:
$ eog output.png
Run Code Online (Sandbox Code Playgroud)
我发现,显示的output.png eog不如提示shell中绘制的数字好.
这是为什么?在保存之前我需要调整一些设置output.png吗?
PS
我找到了解决它的方法,首先,
set term postscript
set output "output.ps"
Run Code Online (Sandbox Code Playgroud)
然后在linux shell中
$ convert output.ps output.jpg
Run Code Online (Sandbox Code Playgroud)
这种方式解决了我的问题.
jst*_*rek 77
PNG质量问题的根源很可能是Gnuplot的png终端缺少抗锯齿.由于你没有给出任何截图,我不确定你在谈论坏线宽时的意思,但这就是它在我看来的样子(在MacOS上).此屏幕截图显示了gnuplot的原生aquaterm输出的输出:

如果我们创建一个png使用set term png,那么这些行变得"跳跃"并且像素化:

但是,有一个版本的png终端使用Cairo libs进行渲染,这使得输出更加平滑和更好.set term pngcairo给出了这个结果:

您可以使用set terminal检查此终端版本是否可用.如果是这样,这应该可以节省您的转换工作,并且还可以提供比JPG更好的图像质量(这不是艺术线条的理想格式).
小智 16
使用PNG终端生成的gnuplot的PNG图像的默认大小为640x480像素.在某些情况下,此分辨率可能会导致"像素化"图形不如使用默认(wxt)终端在屏幕上生成的那样好.
您可以使用size选项更改输出图像的分辨率:
set terminal png size <x,y>
Run Code Online (Sandbox Code Playgroud)
其中x和y分别是沿水平轴和垂直轴的所需像素数.例如:
set terminal png size 1024,768
Run Code Online (Sandbox Code Playgroud)
请注意,分辨率较高的图像会导致磁盘上的文件按比例增大.或者,您可以尝试使用非光栅终端,如"post eps"或"pdf"(如果在您的计算机上可用),这可以为您提供高质量的可扩展和(相对)便携式映像,而不会占用大量磁盘.
或者,如果您想要使用gnuplot的专业(出版物就绪)质量图像,您应该看看epslatex终端.我已经广泛使用它来完成我的论文和论文,结果非常好,几乎没有像素化问题,将图像转换为pdf时的可移植性,以及Latex的几乎所有功能.
| 归档时间: |
|
| 查看次数: |
83071 次 |
| 最近记录: |