我有一个像
这样的数据文件0 8.4
60 7.5
120 8.9
180 9.2
240 8.3
300 6.9
我的gnuplot脚本看起来像这样:
unset xtics
unset ytics
set polar
set angle degrees
set rrange [0:10]
set rtics 2
set grid polar
set size square
p 'data.txt' u 1:2 w lp
我的问题是我希望第一个和最后一个数据点通过该行连接。如果我在文件末尾再次重复数据文件中的第一个点,我得到了预期的结果,如:
0 8.4
60 7.5
120 8.9
180 9.2
240 8.3
300 6.9
0 8.4
这是获得预期结果的唯一方法吗?我问,因为我的真实文件有很多数据集,我通过gnuplot index
命令引用,如p 'data.txt' index 1276 u 1:2 w lp
,并且总是在每个块的末尾再次复制第一个数据点是非常烦人的
答案 0 :(得分:0)
解决方案是通过仅使用这两个点进行第二个绘图连接第一个和最后一个点。
使用语法every(check help plot every
),您只能绘制第一个点(数字0)和最后一个点(数字N)
用:
every N::0::N
在您提供的示例中,第9行应修改如下:
p 'data.txt' u 1:2 w lp ls 1, 'data.txt' u 1:2 ev 5::0::5 w lp ls 1 noti
此解决方案的第一个缺陷是您必须指定第二行的样式以确保它看起来像第一行,并且不会出现在键中(因此ls 1
和noti
)。
第二个缺陷是你需要知道你的街区中的点数。它可以使用stats
语法在gnuplot中获取,如here所示。对于您的示例,我将在列0(对于点数)使用它,如下所示:
stats 'data.txt' u 0
N = STATS_max