#!/usr/bin/perl use strict; use Data::Dumper; use SVG::Graph; use SVG::Graph::Data; use SVG::Graph::Data::Datum; my @d1 = (); my ( $i, $j ) = ( 0, 0 ); while (<>) { last if $i >= 15; chomp; my @cols = split /\t/; $j = 0; foreach my $c (@cols) { last if $j >= 15; next if $c =~ /nan/; $c = int($c); warn "$c @ $j,$i"; push @d1, SVG::Graph::Data::Datum->new( x => $j, y => $i, z => $c ); $j++; } $i++; } my $graph = SVG::Graph->new( width => 600, height => 600, margin => 30 ); my $frame0 = $graph->add_frame; my $frame1 = $frame0->add_frame; #for(1..int(rand(10)+1)){push @d1, SVG::Graph::Data::Datum->new(x=>int(rand(50)),y=>int(rand(50)),z=>int(rand(10))+1);} #for my $i (1..20){ # for my $j (1..20){ # push @d1, SVG::Graph::Data::Datum->new(x=>$i,y=>$j,z=>int(rand(255))); # } #} my $data1 = SVG::Graph::Data->new( data => \@d1 ); $frame1->add_data($data1); $frame0->add_glyph( 'axis', 'stroke' => 'black', 'stroke-width' => 2 ); #$frame0->add_glyph('scatter', 'fill'=>'grey','fill-opacity'=>0.3); $frame1->add_glyph( 'heatmap', 'fill' => 'yellow', 'fill-opacity' => 0, stroke => 'black', rgb_h => [ 255, 255, 0 ], rgb_m => [ 255, 255, 255 ], rgb_l => [ 0, 0, 255 ] ); print $graph->draw;