我正在尝试使用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
以及其他一些选项,但似乎只有在我有一个包含两个时间戳的文件时才可用(我不确定我能做到这一点,因为我有时在一个文件中有step 2a
但在另一个文件中没有;是的,我知道这可能意味着条形之间的颜色不一致。)
由于
答案 0 :(得分:1)
您可以将所有数据合并到一个以制表符分隔的文件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
答案 1 :(得分: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)
这会添加一个可以抑制或自定义的图例。