my (@h,@c); push @h, $_->{'hour'} foreach(@{$data}); push @c, $_->{'count'} foreach(@{$data}); my $new = [ \@h, \@c]; print (\@new); #@data=(["1st","2nd","3rd"], # [9,4,7]); # I have a hash table with $data[$index]{'hour'} and $data[$index]{'count'} # $graph= GD::Graph::lines->new(400,300); $graph->set( x_label => 'Hour', y_label => 'Transaction Volume', title => 'Number of transactions per hour', y_max_value => 20, y_label_skip => 1, y_tick_number => 1); #$gd = $graph->plot(\@data); open (IMG,'>file.png') or die $!; binmode IMG; print IMG $graph->plot(\@new)->png; close IMG;