我有一个带有 lot 行的数据文件 - 在24小时内每5秒采样一次CPU使用率(分解为%user,%system,%iowait和%nice) ,所以17280个样本全部上传。我的输入文件如下所示:
Time CPU %user %nice %system %iowait %steal %idle
17:11:05 all 4.46 0.00 0.57 0.79 0.00 94.18
17:11:10 all 2.34 0.00 0.31 0.44 0.00 96.91
17:11:15 all 2.48 0.00 0.33 0.14 0.00 97.06
要尝试查看何时出现高CPU负载,我想将非空闲CPU使用率随时间绘制为直方图,我使用的是这样的:
set key autotitle columnhead
set style data histogram
set style histogram rowstacked
set style fill solid border -1
set boxwidth 1.0
plot 'sarout.csv' using "%user":xtic(1), '' using "%system", '' using "%iowait", '' using "%nice"
麻烦的是,这给了我每一列的xtic(即时间),这是不可读的。
有没有办法让xtic只在一小时出现?即当时间字符串与“*:00:00”匹配时。
答案 0 :(得分:1)
Gnuplot直方图没有传统的数值轴。您可以在xtic
中添加条件,但这只会影响抽动标签,但不会影响抽搐。
要获得正常的数值轴,您必须绘制with boxes
,但这不允许您堆叠值。或者你绘制并堆叠with boxxyerrorbars
:
set key autotitle columnhead
set style fill solid border -1
set xdata time
set timefmt '%H:%M:%S'
set format x '%H'
set xtics 360
plot 'sarout.csv' using 1:(0.5*column("%user")):(60):"%user" with boxxyerrorbars, \
'' using 1:(column("%user")+0.5*column("%system")):(60):"%system" with boxxyerrorbars,\
'' using 1:(column("%user")+column("%system")+0.5*column("%iowait")):(60):"%iowait" with boxxyerrorbars, \
'' using 1:(column("%user")+column("%system")+column("%iowait")+0.5*column("%nice")):(60):"%nice" with boxxyerrorbars
写作非常冗长,但却能让你对抽动有最好的控制。我目前无法测试此代码,但它应该可以正常工作。