【问题标题】:GNUPLOT: Multiple histograms each with normalized barsGNUPLOT:多个直方图,每个直方图都有标准化条形图
【发布时间】:2017-08-28 13:01:39
【问题描述】:

首先我想说我是 gnuplot 的新手。我正在尝试绘制多个已标准化的堆叠直方图,以便每个条形的高度为 1。我也不想修改我的数据文件以将总数作为最后一个条目包括在内,因为我有很多数据要绘制的文件,这将花费大量时间。我环顾四周,我知道这是可以做到的,但是我没有成功地改编我发现的示例来处理我正在使用的代码。 我正在使用(大大缩短)的数据文件名为“Test.dat”,格式如下:

#a = 2  
#b 1  2  3  X  
b=1  1  3  1   
b=2  0  1  1

#a = 4  
b 1  2  3  X   
b=1  1  1.5  1.5     
b=2  1  2.1  1.9

这里以 b=x 开头的每一行都是一个条,并且有两组对应于 a=x 的两个条。我的 .gp 文件目前如下所示:

set style data histogram
set style histogram rowstacked gap .5 title offset 0, -1
set style fill solid border -1
set boxwidth .75 relative
set yrange [0:]
unset xtics

plot \\

newhistogram  "b=2"  lt 1, for[col=2:4] 'Test.dat' index 0 u col:xtic(1)   notitle \
,newhistogram "b=4"  lt 1, for[col=2:4] 'Test.dat' index 1 u col:xtic(1)   notitle \

这给了image,但这是what I would like to get。如果您能提供任何帮助,我将不胜感激。

【问题讨论】:

    标签: gnuplot histogram


    【解决方案1】:
    1. 您错过了第二个数据块中的注释符号“#”。

    2. 您必须用 2 个空行分隔每个数据块。

    3. 您在数据文件中使用"b=1""b=2",但在脚本中使用"b=2"b=4

    4. 最后:gnuplot 能够制作堆叠直方图,但无法自动标准化它们,而是手动标准化:-/

      set style data histogram
      set style histogram rowstacked gap .5 title offset 0, -1
      set style fill solid border -1
      set boxwidth .75 relative
      set yrange [0:]
      unset xtics
      
      plot \\\
      
      newhistogram  "b=1"  lt 1, for[col=2:4] 'Test.dat' index 0 u (column(col)/$5):xtic(1)   notitle, \
      newhistogram "b=2"  lt 1, for[col=2:4] 'Test.dat' index 1 u (column(col)/$5):xtic(1)   notitle
      

    【讨论】:

    • 评论 1-3 是我在这里复制我必须做的错误 -_-。感谢您的回复,很遗憾您无法在gnuplot中定义一个函数来执行此操作,但是谢谢。
    猜你喜欢
    • 2012-07-24
    • 1970-01-01
    • 2013-08-22
    • 2014-12-04
    • 2011-08-12
    • 2018-07-20
    • 2020-05-28
    • 2012-08-14
    • 1970-01-01
    相关资源
    最近更新 更多