Datenstrukturen visualisieren mit GraphViz::Data::Grapher

| | Kommentare (0)

GraphViz::Data::Grapher von Léon Brocard ermöglicht die graphische Darstellung komplexer Datenstrukturen.

Dieser Beitrag geht auf folgende häufig anzutreffende Datenstrukturen ein

  • Arrays of Arrays
  • Hashes of Arrays
  • Arrays of Hashes
  • Hashes of Hashes
  • Hash mit komplexer Datenstruktur
und zeigt wie diese mit GraphViz::Data::Grapher visualisiert werden können.

 

Arrays of Arrays

#!/usr/bin/perl
use strict;
use warnings;

use GraphViz::Data::Grapher;

my @AoA = (
        [ "fred", "barney" ],
        [ "george", "jane", "elroy" ],
        [ "homer", "marge", "bart" ],
      );

my $graph = GraphViz::Data::Grapher->new(@AoA);
print $graph->as_png("AoA.png");

Das Programm erzeugt folgende Graphik:

/2008/08/AoA.png

 

Hashes of Arrays

#!/usr/bin/perl
use strict;
use warnings;

use GraphViz::Data::Grapher;

my  %HoA = (
        flintstones        => [ "fred", "barney" ],
        jetsons            => [ "george", "jane", "elroy" ],
        simpsons           => [ "homer", "marge", "bart" ],
      );
my $graph = GraphViz::Data::Grapher->new(%HoA);
print $graph->as_png("HoA.png");

Das Programm erzeugt folgende Graphik:

HoA.png

 

Arrays of Hashes

#!/usr/bin/perl 
use strict;
use warnings;

use GraphViz::Data::Grapher;

my @AoH = (
        {
            Lead     => "fred",
            Friend   => "barney",
        },
        {
            Lead     => "george",
            Wife     => "jane",
            Son      => "elroy",
        },
        {
            Lead     => "homer",
            Wife     => "marge",
            Son      => "bart",
        },
  );
my $graph = GraphViz::Data::Grapher->new(@AoH);
print $graph->as_png("AoH.png");

Das Programm erzeugt folgende Graphik:

AoH.png

 

Hashes of Hashes

#!/usr/bin/perl 
use strict;
use warnings;

use GraphViz::Data::Grapher;

my %HoH = (
        flintstones => {
                lead      => "fred",
                pal       => "barney",
        },
        jetsons     => {
                lead      => "george",
                wife      => "jane",
                "his boy" => "elroy",
        },
        simpsons    => {
                lead      => "homer",
                wife      => "marge",
                kid       => "bart",
        },
 );
my $graph = GraphViz::Data::Grapher->new(%HoH);
print $graph->as_png("HoH.png");

Das Programm erzeugt folgende Graphik:

HoH.png

 

Hash mit komplexer Datenstruktur

#!/usr/bin/perl 
use strict;
use warnings;

use GraphViz::Data::Grapher;
my      %TV = (
        flintstones => {
            series   => "flintstones",
            nights   => [ qw(monday thursday friday) ],
            members  => [
                { name => "fred",    role => "lead", age  => 36, },
                { name => "wilma",   role => "wife", age  => 31, },
                { name => "pebbles", role => "kid",  age  =>  4, },
            ],
        },

        jetsons     => {
            series   => "jetsons",
            nights   => [ qw(wednesday saturday) ],
            members  => [
                { name => "george",  role => "lead", age  => 41, },
                { name => "jane",    role => "wife", age  => 39, },
                { name => "elroy",   role => "kid",  age  =>  9, },
            ],
         },

        simpsons    => {
            series   => "simpsons",
            nights   => [ qw(monday) ],
            members  => [
                { name => "homer", role => "lead", age  => 34, },
                { name => "marge", role => "wife", age => 37, },
                { name => "bart",  role => "kid",  age  =>  11, },
            ],
         },
      );
my $graph = GraphViz::Data::Grapher->new(%TV);
print $graph->as_png("complex.png");

Das Programm erzeugt folgende Graphik:

complex.png

 

Siehe auch

Jetzt kommentieren

Über diese Seite

Diese Seite enthält einen einen einzelnen Eintrag von Thomas Fahle vom 19.08.08 16:15.

Modulabhängigkeiten ermitteln mit CPAN::FindDependencies ist der vorherige Eintrag in diesem Blog.

Locale::Country - ISO 3166 - Norm für Kodierung von geographischen Einheiten ist der nächste Eintrag in diesem Blog.

Aktuelle Einträge finden Sie auf der Startseite, alle Einträge in den Archiven.

Blog Roll

Powered by

Powered by Movable Type 5.2.10

Creative Commons-Lizenz

Creative Commons License
Dieses Weblog steht unter einer Creative Commons-Lizenz.