从gnuplot 5.4中的数据文件填充spiderplot

从gnuplot 5.4中的数据文件填充spiderplot,gnuplot,Gnuplot,gnuplot 5.4的最新版本推出了许多简洁的新特性,包括使用“蜘蛛图”(有时也称为雷达图等)。接下来,我已经能够使用脚本中定义的本地数据成功地绘制蜘蛛图。但是,我似乎不知道如何使用数据文件(例如.*.csv)来完成这项工作。我真的很想做一个类似于演示列表上的最后一个(多个数据系列、标记、着色等),但无法理解如何使用文件中的数据的语法 为了便于使用,我从中复制了阵列数据并将其转换为*.csv格式。请随意将其用作示例输入文件。谢谢你的帮助 Array1,Array2 15,25 75,25 20

gnuplot 5.4的最新版本推出了许多简洁的新特性,包括使用“蜘蛛图”(有时也称为雷达图等)。接下来,我已经能够使用脚本中定义的本地数据成功地绘制蜘蛛图。但是,我似乎不知道如何使用数据文件(例如.*.csv)来完成这项工作。我真的很想做一个类似于演示列表上的最后一个(多个数据系列、标记、着色等),但无法理解如何使用文件中的数据的语法

为了便于使用,我从中复制了阵列数据并将其转换为*.csv格式。请随意将其用作示例输入文件。谢谢你的帮助

Array1,Array2
15,25
75,25
20,50
43,50
90,75
50,50

如果您有数据文件“test.csv”,则可以使用以下脚本复制演示中的最后一个绘图

set size ratio 1 1,1

# set title "To plot from 2 different files or arrays, use 'newspiderplot'"
set datafile separator comma

set spiderplot
set style spiderplot fs transparent solid 0.2 border lw 1 pt 6 ps 2
set for [i=1:6] paxis i range [0:100]
set paxis 1 tics font ',9'
set for [i=2:6] paxis i tics format ""
set grid spider lt black lc "grey" lw 0.5 back

set style data spiderplot
plot \
     keyentry with spiderplot lc 3 lw 3 title "Array #1", \
     for [i=1:6] "test.csv" every ::i::i using 1 lc 3 lw 3 title sprintf("Scale %d",i), \
     newspiderplot, \
     keyentry with spiderplot lc 4 lw 2 title "Array #2", \
     for [j=1:6] "test.csv" every ::j::j using 2 lc 4 lw 2 notitle
您有两个系列的6轴数据。下面代码的循环体从“test.csv”中选取行编号i和列编号1的一个值,该值与使用“Array1[i]”的原始代码中的值相同

此代码

     for [i=1:6] "test.csv" every ::i::i using 1 lc 3 lw 3 title sprintf("Scale %d",i), \
     for [i=1:|Array1|] Array1 using (Array1[i]) lc 3 lw 3 title sprintf("Scale %d",i), \
原始代码

     for [i=1:6] "test.csv" every ::i::i using 1 lc 3 lw 3 title sprintf("Scale %d",i), \
     for [i=1:|Array1|] Array1 using (Array1[i]) lc 3 lw 3 title sprintf("Scale %d",i), \

仅供参考,
| Array1 |
是表示
Array1

中元素数量的表达式,到底是什么不起作用?可能您缺少一个
设置数据文件分隔符逗号
这是一个完美的回答,谢谢!!我理解了“Array1”的意思,但我很感激你的解释。我一直在努力将“test.csv”部分插入到绘图行中,并指出如何访问它。我在gnuplot中很少使用for循环。再次感谢!