首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

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

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

gnuplot 和柱状图 还可以使用柱状图或框图表示数据,有时候这比使用静态数据更合适。清单 4 是从一台 AIX 机器获得的用户组用户总数。第 1 列包含 AIX 组名,第 2 列包含成员总数。
清单 4. grpdata.txt
1
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 度(通过试验找到合适的角度),让它们垂直显示。可以使用以下命令来实现这种效果:
1
set xtic rotate by 90




第 2 列中的数据使用第 1 列(x 数据)作为参照:
1
2:xtic (1)




在生成图形时,给数据加上标题 “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.conf
1
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.txt
1
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 轴作为参照:
1
2:xtic(1)




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.conf
1
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
返回列表