【问题标题】:Columnstacked histograms in gnuplot from multiple files来自多个文件的gnuplot中的列堆叠直方图
【发布时间】:2013-05-01 02:03:03
【问题描述】:

我正在尝试使用 gnuplot 查看一些分析数据;我有几个文件,每个文件格式如下:

file_runXX.dat:
elapsed time, stage
elapsed time, stage

例如:

0 foo
1 step_1
1.5 step_2
2.3 step_3

0 bar
0.75 step_1 
1.3 step_2
2.1 step_3

为了绘制它们,我使用:

set style data histogram
set style histogram columnstack
plot for [i=1:2] sprintf("%02d.log", i) using 1

我得到一个带有两个垂直条的图形:在 x=0 处,我有一个从 y=0 到 y=1 的条形,然后 y=1 到 y=1.5 和 y=1.5 到 y=2.3。在 x=1 时,我有来自第二个文件的相同数据。

两个问题:

(a) 这是执行此操作的正确方法(即,它有效,但有更好的方法吗?),以及

(b) 如何将 xlabels 设置为读取“foo”和“bar”(参见每个文件的第 2 列第 1 行)?我尝试过使用using 1:xtic(2)title columnheader 以及其他一些选项,但似乎只有当我有一个包含两个时间戳的文件时才可用(我不确定我能做到这一点,因为我有时有@ 987654327@ 在一个文件中,但不在另一个文件中;是的,我知道这可能意味着条形之间的颜色不会一致)。

谢谢

【问题讨论】:

  • 如果您不喜欢这些答案,请告诉我们原因。
  • 对不起,我休假了几天。这不是投诉。

标签: visualization gnuplot histogram data-visualization


【解决方案1】:

或者你可以转置数据:

#label  step_1  step_2  step_3
foo     1       1.5     2.3
bar     .75     1.3     2.1

...然后使用以下命令:

set style data histograms
set boxwidth .7
set style histogram rowstacked
plot for [COL=2:4] "all.dat" using COL:xticlabels(1)

这会添加一个您可以隐藏或自定义的图例。

【讨论】:

    【解决方案2】:

    您可以将所有数据合并到一个制表符分隔的文件 all.dat:

    foo bar
    1   .75
    1.5 1.3
    2.3 2.1
    

    然后使用以下命令:

    set style data histograms
    set style histogram columnstacked
    set boxwidth .7
    plot for [COL=1:2] "all.dat" using COL title columnhead
    

    【讨论】:

    • 实际上我的两个解决方案都只回答问题 b。关于 a:一个文件比多个数据文件好,因为这清楚地表明 step_x 标签的不相关性。在您最初的建议中,您可以从一个文件中删除 step_2 行,数据看起来仍然不错,但情节可能会无声地中断。
    猜你喜欢
    • 2016-12-19
    • 2016-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-04
    • 1970-01-01
    • 2016-02-07
    • 1970-01-01
    相关资源
    最近更新 更多