2010-06-27 11:53:33| 分类: perl&bioperl | 标签: |举报 |字号大中小 订阅
PERL中的GD模块可以根据提供的数据来画柱图或者线图。在Windows下安装和演示实例代码。
从statspack中抽取数据,存储到文本文件,perl 代码如下,
use GD::Graph::lines;
print STDERR “Processing Edit1.data\n”;
@data = read_data(”Edit1.data”) or die “Cannot read data from Edit1″;
$my_graph = new GD::Graph::lines(800,300);
$my_graph->set(
x_label => ‘Days in statspack’,
y_label => ‘Buffer Gets’,
title => ‘Buffer Gets ‘,
#y_min_value => 0,
#y_max_value => 109224787,
y_tick_number => 10,
#y_label_skip => 1,
x_tick_number => ‘auto’,
#x_label_skip => 2,
x_all_ticks =>1,
box_axis => 0,
line_width => 2,
x_label_position => 1/2,
r_margin => 15,
x_labels_vertical => 1,
transparent => 0,
);
$my_graph->set_legend(’Show buffer gets metric’);
$my_graph->plot(\@data);
save_chart($my_graph, ‘edit1′);
sub read_data
{
my $fn = shift;
my @d = ();
open(ZZZ, $fn) || return ();
while (<ZZZ>)
{
chomp;
my @row = split;
for (my $i = 0; $i <= $#row; $i++)
{
undef $row[$i] if ($row[$i] eq ‘undef’);
unshift @{$d[$i]}, $row[$i];
}
}
close (ZZZ);
return @d;
}
sub save_chart
{
my $chart = shift or die “Need a chart!”;
my $name = shift or die “Need a name!”;
local(*OUT);
my $ext = $chart->export_format;
open(OUT, “>$name.$ext”) or
die “Cannot open $name.$ext for write: $!”;
binmode OUT;
print OUT $chart->gd->$ext();
close OUT;
}
会生成如下类似图片,
虽然比rrd画图难看些。
评论