使用 gnuplot 在网页中显示数据(4)gnuplot 和柱状图
 
- UID
- 1066743
|

使用 gnuplot 在网页中显示数据(4)gnuplot 和柱状图
gnuplot 和柱状图 还可以使用柱状图或框图表示数据,有时候这比使用静态数据更合适。清单 4 是从一台 AIX 机器获得的用户组用户总数。第 1 列包含 AIX 组名,第 2 列包含成员总数。
清单 4. grpdata.txt1
2
3
4
5
6
7
8
9
| staff 54
apps 22
sybgrp 12
db2grp1 29
dasdm 8
dstage 21
dsgrp 8
batch 28
db2prd 1
|
要想使用柱状图,只需告诉 gnuplot 应该使用柱状图生成图形:
1
| set style data histograms
|
默认生成的柱状图的框没有粗线边框,框中也没有填充颜色。但是,如果指定边框,在框的底边沿着 x 轴可能有两条粗线(这看起来不太美观)。
gnuplot 按以下次序绘制框的边框:顶、底、左和右,值分别为 1、2、4、8。要想删除一条或多条边框线,只需提供相应值的和。在这个示例中,使用 -1 选项删除底部边框线。指定 fill 选项就会用默认颜色填充框:
1
| set style fill solid 1.00 border -1
|
对于 x 坐标,这里不使用时间,而是使用组名称。使用 xtic 选项让 gnuplot 沿着 x 轴放置 tic 和数据标签(第 1 列)。在这里就是组名称。但是,有时候标签包含许多字符,或者 xtic 的时间格式在图形上的 tic 之间放不下。这时就会看到标签相互重叠。为了避免这个问题,把标签旋转 90 度(通过试验找到合适的角度),让它们垂直显示。可以使用以下命令来实现这种效果:
第 2 列中的数据使用第 1 列(x 数据)作为参照:
在生成图形时,给数据加上标题 “apps groups numbers”:
1
| plot "grpdata.txt" using 2:xtic(1) title "apps group numbers"
|
使用以下命令生成图像 grpimage.png:
1
| $ cat grphist.conf | gnuplot
|
清单 5 包含生成图像的 gnuplot 命令,输出见 。
清单 5. grphist.conf1
2
3
4
5
6
7
8
| # grphist.conf
set terminal png truecolor
set output "grpimage.png"
set grid
set xtic rotate by 90
set style data histograms
set style fill solid 1.00 border -1
plot "grpdata.txt" using 2:xtic(1) title "apps group numbers"
|
图 3. grpimage 当然,可以像 sar 示例一样在柱状图中绘制多组数据。现在看看另一个数据源。清单 6 中的数据反映三个月内磁盘阵列中数据的增减。第 1 列是磁盘阵列名称,第 2 列是第一个月的磁盘使用量,第 3 列是下一个月的磁盘使用量,最后一个月的数据在第 4 列中。
清单 6. disk.txt1
2
3
4
5
6
| hdisk2 420 425 410
hdisk3 700 780 760
hdisk4 450 450 452
hdisk5 680 702 690
hdisk6 320 330 329
hdisk7 530 515 514
|
生成图形的配置文件见 。在 plot 命令中,同样使用 xtic 命令修改 x 轴数据的显示方式。在生成柱状图时,第 2、3 和 4 列使用 x 轴作为参照点。因此指定第 2 列使用 x 轴作为参照:
gnuplot 假设要绘制的其他列也参照 x 轴,所以在 plot 命令中不需要再指定 xtic:
1
2
| plot "disk.txt" using 2:xtic(1) title "Oct-09 data growth(gb)", '' using 3 title "N
ov-09 data growth(gb)", '' using 4 title "Dec-09 data growth(gb)"
|
使用以下命令生成图像:
1
| $ cat diskhist.conf | gnuplot
|
产生的图像见 。
清单 7. diskhist.conf1
2
3
4
5
6
7
8
| # diskhist.conf
set terminal png truecolor
set output "diskimage.png"
set grid
set style data histograms
set style fill solid 1.00 border -1
plot "disk.txt" using 2:xtic(1) title "Oct-09 data growth(gb)", '' using 3 title "N
ov-09 data growth(gb)", '' using 4 title "Dec-09 data growth(gb)"
|
图 4. diskimage |
|
|
|
|
|