GnuPlot—在数据文件中打印点,并打印点的计数

GnuPlot—在数据文件中打印点,并打印点的计数,gnuplot,Gnuplot,我有一个数据文件file.dat按以下格式排列: DataA: 0 2 1 3 7 2 1 2 DataB: 3 2 6 4 1 1 我想从这个数据文件中得到两个绘图 这些点的简单图 每个数据集中点数的绘图。e、 g(DataA得4分,DataB得3分) 为了生成第一个绘图,我使用这个 set key autotitle columnheader right plot for [i=0:1] 'file.dat' using 1:2 index i with lp 对

我有一个数据文件
file.dat
按以下格式排列:

 DataA:
 0 2
 1 3
 7 2
 1 2


 DataB:
 3 2
 6 4
 1 1
我想从这个数据文件中得到两个绘图

  • 这些点的简单图
  • 每个数据集中点数的绘图。e、 g(DataA得4分,DataB得3分)
  • 为了生成第一个绘图,我使用这个

    set key autotitle columnheader right 
    plot for [i=0:1] 'file.dat' using 1:2 index i with lp
    
    对于另一个图,我只需要一个简单的条形图,如下所示:

    其中
    y轴
    表示数据A和数据B的点数

    我不知道如何计算列表中的点,同时绘制数据集

    顺便问一下,我能同时得到这两幅图吗

    编辑:
    文件.dat
    可以包含多个数据。e、 g

     DataA:
     0 2
     1 3
     7 2
     1 2
    
     .
     .
     .
    
    
    DataZ:
    3 2
    6 4
    

    要计算点数,请使用
    stats
    。要并排打印,请使用
    multiplot

    stats 'file.dat' using 1:2 every :::0::0  name 'A' # to get stats with prefix 'A_'
    stats 'file.dat' using 1:2 every :::1::1  name 'B'
    set multiplot layout 1,2 # 1 row, 2 columns
    plot for [i=0:1] 'file.dat' using 1:2 index i with lp
    set object 1 rect from 1,0 to 3,A_records fc rgb 'red'
    set object 2 rect from 5,0 to 7,B_records fc rgb 'red'
    set xrange [0:8]
    max=(A_records>B_records ? A_records:B_records)+0.5
    set yrange [0:max]
    set format x ''
    unset xtics
    set xtics ('DataA' 2, 'DataB' 6)
    plot -10 notitle
    unset multiplot
    

    如果我不知道自己正在处理多少数据,该怎么办?就像在本例中,我有
    DataA
    DataB
    ,但我可能会生成另一个类似于这样的文件:DataA:0 2 1 3 7 2 1 2 DataB:3 2 6 4 1 DataC:0 2 1 3 7 2 DataD:3 2 6 4 1执行
    stats
    对于没有条件的文件,块数在变量
    stats\u blocks
    中。然后使用循环,查看[…]的
    do
    构造。