please find the code below,-60 < x <= -30 ( 6273 pts) |** -30 < x <= 0 ( 44623 pts) |******** 0 < x <= 30 ( 55626 pts) +********** 30 < x <= 60 ( 11244 pts) |**
currently i am able to sort the array & find the maximum & minimum values but not able to generate the scale/chart as shown above. the sampe of input file will be (as it is a huge file)my $file = $ARGV[0]; # input file my $bin = $ARGV[1]; # bin size normally 20 or 30 my $outfile = "temp.stat"; open (IN_LOG,"$file") || die "cannot open $file for reading: $!"; open (OUT_LOG,">$outfile") || die "cannot open $outfile for writing: $ +!"; my $colName; my @array; while (<IN_LOG>) { push (@array,$_); } } my @sortArray = sort { $a <=> $b } @array; $max = $sortArray[-1]; $min = $sortArray[0]; print OUT_LOG "#- - - - - - - - - - - - - - - - - - - - -\n"; print OUT_LOG "#MAX : $max \n"; print OUT_LOG "#MIN : $min \n"; print OUT_LOG "#- - - - - - - - - - - - - - - - - - - - -\n"; $temp=$max-$bin; while ($max>=$min) { $i=0; print OUT_LOG "\n$max > $bin < $temp:"; foreach $val (@array) { if($val<=$max && $val>=$temp) { $i+=1; } } $max= $temp; $temp=$temp-$bin; print OUT_LOG " $i pts "; my $star = int($i/500) + 0.5; $var= '*' x $star; print OUT_LOG "| $var\n "; } close IN_LOG; close OUT_LOG; close MYFILE;
thanks.45.980 -34.99 89.00 35.87 75.00 -30.173 -40.178
In reply to generate a chart using the data by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |