【问题标题】:GnuPlot - plot points in a data file and plot the count of points alsoGnuPlot - 在数据文件中绘制点并绘制点数
【发布时间】:2017-04-06 18:27:09
【问题描述】:

我有一个数据文件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 分)

为了生成我正在使用的第一个图

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

对于另一个情节,我只想要一个像这样的简单条形图:

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

我不明白如何计算列表中存在的点,同时也绘制数据集。

P.S 我也可以把这两个图并排吗?

编辑: file.dat 可以包含多个数据。例如

 DataA:
 0 2
 1 3
 7 2
 1 2

 .
 .
 .


DataZ:
3 2
6 4

【问题讨论】:

    标签: gnuplot


    【解决方案1】:

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

    【讨论】:

    • 如果我不知道我正在处理多少数据怎么办?就像在这种情况下,我有 DataADataB 但我可能会生成另一个文件,如下所示: DataA: 0 2 1 3 7 2 1 2 DataB: 3 2 6 4 1 1 DataC: 0 2 1 3 7 2 1 2 数据D:3 2 6 4 1 1
    • 无条件为您的文件执行stats,块数在变量STATS_blocks中。然后使用循环,看do for [...]构造。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多