For loop Gnuplot:如何从顶点绘制多边形/轮廓

For loop Gnuplot:如何从顶点绘制多边形/轮廓,for-loop,gnuplot,polygon,For Loop,Gnuplot,Polygon,My data.txt文件包含形成多边形线段的点的二维坐标。这些坐标会随着时间的推移而变化。该文件的结构如下所示: itr nbr_pts p1.x p1.y ...... pk.x pk.y (itr+1) .......... ..... 其中pk是多边形的第k个点/顶点,nb_pts是顶点数 我的问题是如何在某个迭代(行)中从其顶点(p1、p2、…pk)绘制二维多边形 此外,请注意,不仅有一个数据文件/多边形,还有N个:data1.txt。。。。dataN.txt 我尝试了类似

My data.txt文件包含形成多边形线段的点的二维坐标。这些坐标会随着时间的推移而变化。该文件的结构如下所示:

itr    nbr_pts   p1.x p1.y ...... pk.x pk.y
(itr+1) ..........
.....
其中pk是多边形的第k个点/顶点,nb_pts是顶点数

我的问题是如何在某个迭代(行)中从其顶点(p1、p2、…pk)绘制二维多边形

此外,请注意,不仅有一个数据文件/多边形,还有N个:data1.txt。。。。dataN.txt

我尝试了类似的方法,但没有成功(Nbr of files=6)

我知道有多少Polygone/文件(本cae中有6个),但我事先不知道每个文件中的列数;顶点的数量可能因多边形而异


有什么想法吗?

我的想法需要修改你的文件结构。对于每个迭代时间,都有一个包含多边形顶点的
x
y
坐标的块:

# file: data1.txt

# itr 0
0 0
1 1
1 2
0 0


# itr 1
1 3
2 1
0 1
1 2
1 3


# itr 2
3 1
2 1
0 0
3 1
请注意,每个块由两条空线分隔。对于迭代0(块0或
itr 0
),有一个具有三个顶点的多边形,
itr 1
有四个顶点,
itr 2
有三个顶点。要获得闭合曲线,需要指定终点,例如,对于
itr 1
I,我将点
1 3
放置两次

对于该文件,我们可以在迭代
iter
时绘制多边形,如下所示

iter = 1   # select block 1, or itr 1
plot "data1.txt" index iter w lp ps 2 pt 7 
如果您有多个文件,请尝试

# option 1
nbr  = 6      # number of files
iter = 1      # select block 1, or itr 1

plot for [i=1:nbr] "data".i.".txt" index iter w lp ps 2 pt 7 title "".i

#option 2
files = system("ls data*.txt")   # get all datafiles in folder
iter = 1                         # select block 1, or itr 1

plot for [data in files] data index iter w lp ps 2 pt 7 title data
# option 1
nbr  = 6      # number of files
iter = 1      # select block 1, or itr 1

plot for [i=1:nbr] "data".i.".txt" index iter w lp ps 2 pt 7 title "".i

#option 2
files = system("ls data*.txt")   # get all datafiles in folder
iter = 1                         # select block 1, or itr 1

plot for [data in files] data index iter w lp ps 2 pt 7 title data