summaryrefslogtreecommitdiff
path: root/util/stats/output.py
diff options
context:
space:
mode:
Diffstat (limited to 'util/stats/output.py')
-rw-r--r--util/stats/output.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/util/stats/output.py b/util/stats/output.py
index 44dba5d15..f793749f7 100644
--- a/util/stats/output.py
+++ b/util/stats/output.py
@@ -96,10 +96,10 @@ class StatOutput(object):
self.printdata(printmode=printmode)
def graph(self, graphdir):
- from os.path import expanduser, join as joinpath
+ from os.path import expanduser, isdir, join as joinpath
from barchart import BarChart
- from matplotlib.numerix import Float, zeros
- import re
+ from matplotlib.numerix import Float, array, zeros
+ import os, re
confgroups = self.jobfile.groups()
ngroups = len(confgroups)
@@ -130,6 +130,8 @@ class StatOutput(object):
raise AttributeError, 'No group selected for graph bars'
directory = expanduser(graphdir)
+ if not isdir(directory):
+ os.mkdir(directory)
html = file(joinpath(directory, '%s.html' % self.name), 'w')
print >>html, '<html>'
print >>html, '<title>Graphs for %s</title>' % self.name
@@ -143,6 +145,8 @@ class StatOutput(object):
for g,gopt in enumerate(groupopts):
for b,bopt in enumerate(baropts):
job = self.jobfile.job(options + [ gopt, bopt ])
+ if not job:
+ continue
val = self.info.get(job, self.stat)
if val is None:
@@ -156,6 +160,10 @@ class StatOutput(object):
data[g][b] = val
+ data = array(data)
+ if data.sum() == 0:
+ continue
+
bar_descs = [ opt.desc for opt in baropts ]
group_descs = [ opt.desc for opt in groupopts ]
if stacked: