GnuPlot - 绘制数据文件中的点并绘制点数

时间:2017-04-05 13:14:12

标签: gnuplot

我有一个以这种格式排列的数据文件file.dat

 DataA:
 0 2
 1 3
 7 2
 1 2


 DataB:
 3 2
 6 4
 1 1

我想从这个数据文件中获取2个图。

  1. 这些要点的简单图表。
  2. 每个数据集中的点数图。例如(DataA有4个点,DataB有3个点)
  3. 为了生成我使用的第一个图

    set key autotitle columnheader right 
    plot for [i=0:1] 'file.dat' using 1:2 index i with lp
    

    对于其他情节,我只想要一个简单的条形图:

    plot 2

    y-axis表示DataA和DataB的点数。

    我不了解如何计算列表中的点数,同时也绘制数据集。

    P.S我可以同时获得这两个地块吗?

    修改 file.dat可以包含多个数据。例如

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

1 个答案:

答案 0 :(得分:2)

要计算积分,请使用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

https://i.stack.imgur.com/pNtZZ.png