Eu acredito que o GnuPlot pode fazer isso
Também existem módulos Perl que fazem esse tipo de coisa:
use Graph::Easy; my $graph = Graph::Easy->new(); $graph->add_edge_once ('Bonn', 'Berlin'); print $graph->as_ascii( ); # prints: # +------+ +--------+ # | Bonn | --> | Berlin | # +------+ +--------+