http://www.perlmonks.org?node_id=920786


in reply to Re^2: Bucketing,Slicing and Reporting data across multiple dimensions
in thread Bucketing,Slicing and Reporting data across multiple dimensions

Still too abstract to me, but I think that when you say impact quantification you say: the last column number
use GraphViz; open DATA, "<", "/my/data"; my $plot = GraphViz->new( layout => 'dot', # <--or neato, or circo etc node => {height => '0.05', shape => 'box',fontsize => '11', fontname = +> 'Times-Roman', style=>'filled', color=>'lightgray'}, bgcolor=> 'white', center=> 'true', dpi=> '1800', #resolution of the graph, higher = sloower ... more general parameters following here... ); while (<DATA>){ my ($idname, $fooname, $blah, $blah2, $impact) = split //,$_, 5 # spli +t ID in fields next if $impact = 0 # no impact between tests, so we discard this id-> +foo node $plot->add_node($idname, label => "$idname"); #create parent node $plot->add_edge($idname => $fooname, size => $impact) # trace an arrow + from to each id to its foo #i don't remember if size is valid, but instead you could use better +the tag color => $mycolor The goal with this is that you can create easily a customized %colorha +sh (when key = impact and value is a custom color... you can have mor +e, less hot, more blue, more red... for any impact range } # whe close while loop # and we print the plot to a svg file, or gv, or png, or txt... svg fi +le looks reasonably good in a browser and you can zoom it a loot $plot->as_svg("my_big_plot.svg"); system("iceweasel my_big_plot.svg");

something like this, I warn you that in real life this is not so simple and this is only an skeleton and WILL fail for sure until you work and tune this a little, but you can explore this idea in any case, specially if you feel comfortable with dot files.