需要绘制每个n';gnuplot中的第th行

需要绘制每个n';gnuplot中的第th行,gnuplot,data-manipulation,Gnuplot,Data Manipulation,我使用的是gnuplot,有些数据有两个以上的参数。我不想使用3D图形。因此,我将在同一个绘图中将数据分成几行 在一种情况下,我的数据如下所示: #k #N #time 1 1 0.000556134 2 1 0.00099 4 1 0.00201011 8 1 0.00376214 16 1 0.00675843 1 2 0.000717646 2 2 0.000794106 4 2 0.0

我使用的是gnuplot,有些数据有两个以上的参数。我不想使用3D图形。因此,我将在同一个绘图中将数据分成几行

在一种情况下,我的数据如下所示:

    #k   #N   #time   
1   1   0.000556134 
2   1   0.00099 
4   1   0.00201011  
8   1   0.00376214  
16  1   0.00675843  
1   2   0.000717646 
2   2   0.000794106 
4   2   0.0016033   
8   2   0.0033602   
16  2   0.00795338  
1   4   0.000476448
...     ...     ... 
第一个是我使用的流的数量,第二个是缓冲区大小,最后一个是这个操作的时间使用

我想要一个图,其中缓冲区大小为X,时间为Y,每“使用的流数量”有一行。我的代码到现在为止:

     reset
        set   autoscale # scale axes automatically
        unset log       # remove any log-scaling
        unset label     # remove any previous labels
        set xtic auto   # set xtics automatically
        set ytic auto   # set ytics automatically
        #set logscale x 2
        #set logscale y 2
        set rmargin 10
        set bmargin 5
        set tmargin 5 
        set key left top
        set title
        set term png giant size 1500, 800 crop

        set title "Adapter Stream Input" font "verdana, 20"
        set xlabel "Buffer Size" font "verdana, 20"
        set ylabel "Time in Seconds" font "verdana, 20"

        set key right bottom spacing 4 width 5 height 5 font "verdana, 15"

        set output "AdapterStreamInputTests.png"

        plot    "AdapterStreamInputTests.txt" using ($1 == 1 ? $2 : 1/0):($1 == 1 ? $3 : 1/0) title '1 Stream' with linespoints ls 1 linecolor rgb "blue", \
        "AdapterStreamInputTests.txt" using ($1 == 2 ? $2 : 1/0):($1 == 2 ? $3 : 1/0) title '2 Stream' with linespoints ls 1 linecolor rgb "red", \
        "AdapterStreamInputTests.txt" using ($1 == 4 ? $2 : 1/0):($1 == 4 ? $3 : 1/0) title '4 Stream' with linespoints ls 1 linecolor rgb "yellow", \
        "AdapterStreamInputTests.txt" using ($1 == 8 ? $2 : 1/0):($1 == 8 ? $3 : 1/0) title '8 Stream' with linespoints ls 1 linecolor rgb "brown", \
        "AdapterStreamInputTests.txt" using ($1 == 16 ? $2 : 1/0):($1 == 16 ? $3 : 1/0) title '16 Stream' with linespoints ls 1 linecolor rgb "pink"

set output
我现在的主要问题是,它绘制的所有内容都是正确的,但它不会在两个图之间画线。我在命令“使用”一章中读到:

应注意的是,绘制“le”、使用1:2绘制“le”以及绘制 “le”使用($1):($2)可能会有微妙的差别:1)如果le有一些行 有一列和一些有两列,rst将在 他们都不见了,第二个会悄悄地忽略其中一行 列,第三个将为具有1的行存储未定义的值 点(以便在具有直线的绘图中,没有直线连接跨直线的点) 缺点);2) 如果行在rst列包含文本,则rst 将在出现错误时中止绘图,但第二个和第三个应 悄悄地跳过垃圾

我认为我在第三类,没有线,因为每个情节之间有4个无效的情节,但我找不到任何方法来修复它


我找不到办法让它忽略无效的情节。而且似乎没有任何我能找到的预处理方法,可以移除未使用的绘图。但我可能遗漏了什么

你有两个选择

1.)使用如图所示的each命令


2.)使用缺少的参数,如上所述,使用?:符号作为字符的前缀。再次详细介绍这个伟大的,

谢谢你的every Do it,非常方便的工具。现在的绘图如下所示:每5::0使用2:3标题“1流”和行点ls 1打印“AdapterStreamInputTests.txt”,每5::1使用2:3标题“2流”和行点ls 2打印“AdapterStreamInputTests.txt”,每5::2使用2:3标题“4流”和行点ls 3打印“AdapterStreamInputTests.txt”“AdapterStreamInputTests.txt”每5::3使用2:3标题“8流”和行点ls 4,而“AdapterStreamInputTests.txt”每5::4使用2:3标题“16流”和行点ls5@Azrael3000链接断了,你能写一两句关于“每一个”的话吗"? 这样答案就没用了…添加了一个到回程机器的替代链接。这可能是很好的,使这个网站的备份,因为它确实是非常有用的。