我想使用
pointtype
在我的一些图中添加标记。如果我像这样绘制数据:
plot "somedata.txt" w linespoint pointtype 6
或者像这样的函数:
plot cos(x) pointtype 6
我得到了我想要的:所有数据点之间的一条线和一个标记。现在我想实现相同的目标,但是在使用
smooth bezier
“平滑”数据集之后:
plot "somedata.txt" w linespoint pointtype 6 smooth bezier
但是
pointtype
似乎没有做任何事情。我可以像以前一样设置 linecolor
、linewidth
和 linetype
,但不能设置 pointtype
。
有谁知道仍然可以在平滑图上生成标记的解决方法吗?
我有同样的问题,gnuplot 没有在平滑曲线上绘制点。我推测,由于 gnuplot 正在绘制从数据点派生的函数,因此它不会将点标记放在原始数据点之上
请注意,贝塞尔曲线不一定会覆盖原始数据点。
我的解决方法是用不同的方式绘制数据两次:
plot 'data.txt' with points title 'original data', \
'' smooth bezier title 'smoothed data'
我同意@andyras。我几周前就遇到了这个问题,但找不到一种方法来放置平滑曲线和数据。因此,我绘制了两个系列,一个具有平滑曲线,另一个仅用于点。
编辑:很抱歉添加新答案。我正在使用手机,找不到在 @andyras 答案下发表评论的方法
有点晚了,但是您可以用点或线点绘制平滑曲线,不需要两次通过。由于某些我不明白的原因,
smooth bezier
和w lp pt 6
的顺序显然似乎很重要。如果 smooth bezier
最后出现,尽管指定了 w lp pt 6
,您也只会得到一条没有点的线。如果 smooth bezier
是第一个,您将得到预期的结果。这种行为在 gnuplot 5.5 中仍然相同。
脚本:(至少适用于 gnuplot>=4.4.0,2010 年 3 月)
### plot smooth bezier with pointtypes
reset
set samples 50
plot '+' u 1:(rand(0)) w lp pt 6 lc rgb "grey" ti "without smooth", \
'+' u 1:(rand(0)) w lp pt 6 lc rgb "red" smooth bezier ti "smooth last", \
'+' u 1:(rand(0)) smooth bezier w lp pt 6 lc rgb "web-green" ti "smooth first"
### end of script
结果: