This program looks into an output organized file specified by the
user.
In this case, the input
netlist is input.scs, there are fiverepetitions and the deviations
file is called parameters.txt.
Click here to download the
MCMakeGraph.pl file only.
Click here to go to the downloads page.
#!/usr/bin/perl -w
#Written by Hector Hung, Shouri Chatterjee and
Professor Peter Kinget
# Copyright (C) 2004 by the authors and Columbia Integrated Systems
# Laboratory.
# There is no warranty or support and we cannot be held liable in any
way.
# Everyone is permitted to copy verbatim copies of the code including
# this message.
# - Monte Carlo
use
Getopt::Std;
# usage: '.pl'
#for processing
%options=(); <--
List of options from GetOpt
$options{t}='Title';
$options{x}='X Label';
$options{y}='Y Label';
$options{f}='out.gnu';
$options{o}='out.ps';
#parse all parameters and override defaults
getopts("t:x:y:f:o:",\%options);
#if not input files specified, show usage
if (!defined $ARGV[0]) {
print "Usage: MCMakeGraph.pl
-f out.gnu -o out.ps -t 'graph title' -x 'x label' -y 'y label [file1]
[file2] ... [filen]'\n";
exit;
}
#show summary
print "Graph Title: $options{t}\n";
print "X Axis Label: $options{x}\n";
print "Y Axis Label: $options{y}\n";
print "GnuPlot File: $options{f}\n";
print "Graph File: $options{o}\n";
#basic gnuplot
commands
$PLOTCOMMAND =
"set terminal postscript\n" .
"set output \"$options{o}\"\n" .
"set title \"$options{t}\"\n" .
"set xlabel \"$options{x}\"\n" .
"set ylabel \"$options{y}\"\n" .
"set logscale x\n" .
"set data style linespoints\n" .
"plot ";
#add plot commands for each file
$first =1;
foreach $file (@ARGV) {
open (IN, $file) or die "cannot open file $file!";
$_ = <IN>;
close IN;
$columns = scalar((@_ = split(/\s+/)));
#if columns have no avg/ stddev quit
#min columns = 1 row number, 1 x axis, 2+ data, 1
avg,1 stddev = 6
next if ($columns < 6 );
$datacolumn = $columns-1;
if ($first) {
$PLOTCOMMAND .= "\"$file\" using 2:$datacolumn
"; <--Plots
the 2nd column as the x-axis followed by all other columns
$first=0;
}
else {
$PLOTCOMMAND .= ", \"$file\" using 2:$datacolumn ";
}
}
$PLOTCOMMAND .= "\n";
#generate output gnuplot file
open (OUT, ">$options{f}") or die "cannot open outpput file
$options{f}";
print OUT "$PLOTCOMMAND";
close OUT;
#run gnuplot
print `gnuplot $options{f}`;
If you have any questions, please email me at hch2007@columbia.edu