gnuplot终端后缀为postscript时的线宽和线型设置

3
在gnuplot中,我使用了set term postscript enhanced eps color以及lw 5lt 1,2和3来绘制三个不同的图形。
由于图形的宽度,这三种情况下的线条类型看起来并不那么不同。
如果我将lw的值减小到2,情况会有所改善,但我想保持使用lw 5,同时能够使用不同的线条类型。我错过了什么吗?
编辑:
以下是两张图。使用set term postscript enhanced eps color dashedenter image description hereset term epscairo color dashedenter image description here 在两种情况下,我都使用了lw 4
使用epscairo版本看起来更好,但虚线点点点虚线,看起来很糟糕,接近于sin(2x)f(x)=1

1
这与是否有虚线无关,只需使用“set samples 1000”增加采样率即可。 - Christoph
“set sample” 只与内置函数有关吗?或者,如果我有自己的数据,它也有帮助作用吗? - ziulfer
1
是的,这不会影响数据图。在那里,您只有与数据点相同数量的样本。如果需要,您可以使用例如smooth cspline平滑数据。然而,这与虚线或实线没有任何关系。 - Christoph
太好了!smooth cspline解决了问题。我是否应该修改我的问题,将你(这个)的回答选为已采纳? - ziulfer
1
不,我认为你可以保持这样。你必须完全重写问题,而且现有的两个答案将是多余的。只是下次,请从一开始提供足够简洁的信息;) - Christoph
2个回答

3

我认为这是使用postscript终端的虚线一般存在的问题:由于某些内部原因,点并不是作为一个连续的线条绘制出来的,而是每100个点就通过moveto操作中断一次。这可能会导致虚线出现非常奇怪的结果。

一个病态的例子是:

set terminal postscript eps mono dashed dl 10 lw 5
set samples 200
set output 'test.eps'
plot x lt 2

如您所见,中间的破折号比其他的长得多。尝试使用epscairo终端,看看是否效果更好。

enter image description here


那么,你应该准备一些示例图片来完成这个愉快的猜测... - Christoph
我想上传一个 .eps 文件,你能告诉我怎么做吗? - ziulfer
你不能这样做。我使用了 epstopdf file.eps file.pdf && pdftocairo -png -r 100 file.pdf 命令将 eps 文件转换成 pdf,再将其转换成 png 格式,最终可以上传。 - Christoph

2

当您设置终端时,可以使用dl选项指定破折号长度,这也会增加破折号之间的间隔:

set term postscript enhanced eps color dl 4
plot sin(x) lw 5 lt 2, cos(x) lw 5 lt 3

输入图像描述

您还可以添加点以更好地区分您的图表:

set term postscript enhanced eps color
plot "+" u ($1):(sin($1)) w lp lw 5 lt 2 ps 2 pt 7

enter image description here


结果仍然看不出来。假设我想要这个图像是黑白的。我看不出如何一眼看出两个函数之间的区别。 - ziulfer
@ziulfer 但这是另一回事。还有其他类型的线,而不仅仅是 lt 2lt 3。此外,您可以向图表中添加点(请参见新附加的图表)。 - Miguel
我想使用颜色,但如果有人想要以黑白方式打印我的图形,则重要的是他们能够轻松地看到两条曲线之间的差异。否则,我认为使用 lt 没有意义。在这种情况下,对于普通线条来说,默认值 lt 1 就足够了。我知道还有其他线条类型。但一旦我使用大于2的 lw,结果就非常“丑陋”。此外,我有大约30000个数据点,因此向我的图形添加点不会有太大帮助。 - ziulfer
1
你不需要添加所有的点,使用 every 命令可以跳过其中一些。你可以将数据绘制两次:一次只用线条,另一次则跳过大部分点并用点标记。类似这样:mcaroba.dyndns.org/misc/08_4.png - Miguel
1
@Miguel,你也可以使用pointinterval选项来绘制每个第n个点,但对于线条,请使用每个点 :) - Christoph
@Christoph 你全都知道! - Miguel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接