]> git.donarmstrong.com Git - neurodebian.git/blobdiff - survey/makestats
No automatic figure generation on the webserver
[neurodebian.git] / survey / makestats
index 5dd76331a9ee8417e8c03b410f97d6dd08caacf2..4ca6abc6d05775c4850d560d92a896d31bfee398 100755 (executable)
@@ -1,12 +1,19 @@
 #!/usr/bin/python
 
+from mvpa.misc.plot.base import plot_bars
 from glob import glob
-import json
+try:
+    from json import load as jload
+    def jsonload(f):
+        return jload(f)
+except ImportError:
+    from json import read as jread
+    def jsonload(f):
+        return jread(f.read())
 import sys
 import pylab as pl
 import numpy as np
 import time
-from mvpa.misc.plot.base import plot_bars
 
 # uniform colors for OS results
 os_colors = ['#B63537', '#4E4DA0', '#008200', 'gray']
@@ -93,7 +100,7 @@ class DB(dict):
             return
         datafilenames = glob('%s/*.json' % srcdir)
         for dfn in datafilenames:
-            rawdata = json.load(open(dfn))
+            rawdata = jsonload(open(dfn))
             self[rawdata['timestamp']] = rawdata
 
     def get_unique(self, key):
@@ -176,7 +183,7 @@ def mkpic_os_per_env(db, destdir):
             stats[osf] = float(stats[osf]) / total_count
         env_stats[env] = stats
     # make stacked barplot
-    pl.figure(figsize=(6.4, 4.8), facecolor='w', edgecolor='k')
+    pl.figure(figsize=(6.4, 4.8))
     x = np.arange(len(envs))
     bottoms = np.zeros(len(envs))
     for i, os in enumerate(os_order):
@@ -196,7 +203,7 @@ def mkpic_submissions_per_datamod(db, destdir):
     spd = db.get_counts('bg_datamod')
     spd = sorted(spd.items(), cmp=lambda x, y: cmp(x[1], y[1]))[::-1]
     x = np.arange(len(spd))
-    pl.figure(figsize=(6.4, 4.8), facecolor='w', edgecolor='k')
+    pl.figure(figsize=(6.4, 4.8))
     pl.title('Submissions per data modality')
     pl.bar(x, [s[1] for s in spd])
     pl.xticks(x + 0.5,  [db.datamod_dict[k[0]] for k in spd], rotation=-10)
@@ -207,7 +214,7 @@ def mkpic_resources(db, destdir):
     res = db.get_counts('software_resource')
     res = res.items()
     x = np.arange(len(res))
-    pl.figure(figsize=(6.4, 4.8), facecolor='w', edgecolor='k')
+    pl.figure(figsize=(6.4, 4.8))
     pl.title('Software resources')
     pl.bar(x + (1./8), [s[1] for s in res], width=0.75, color = '#008200')
     pl.xticks(x + 0.5,  ['' for s in res])
@@ -215,15 +222,14 @@ def mkpic_resources(db, destdir):
         pl.text(i+.5, 0.1, db.get_nice_name(s[0]), rotation=90,
                 horizontalalignment='center',
                 verticalalignment='bottom',
-                bbox=dict(facecolor='white', alpha=0.8, edgecolor='white',
-                          color='white'))
+                bbox=dict(facecolor='white', alpha=0.8, edgecolor='white'))
     pl.ylabel('Number of submissions')
     pl.savefig('%s/software_resources.png' % destdir, format='png', dpi=80)
 
 def mkpic_software(db, destdir):
     for typ in sw_categories.keys():
         counts = db.get_counts('sw_%s' % typ)
-        pl.figure(figsize=(6.4, 4.8), facecolor='w', edgecolor='k')
+        pl.figure(figsize=(6.4, 4.8))
         pl.title("Software popularity: %s" % db.get_nice_name(typ))
         if not len(counts):
             pl.text(.5, .5, "[Insufficient data for this figure]",
@@ -239,14 +245,13 @@ def mkpic_software(db, destdir):
                 pl.text(i+.5, 0.1, db.get_nice_name(s[0]), rotation=90,
                         horizontalalignment='center',
                         verticalalignment='bottom',
-                        bbox=dict(facecolor='white', alpha=0.8, edgecolor='white',
-                                  color='white'))
+                        bbox=dict(facecolor='white', alpha=0.8, edgecolor='white'))
             pl.xlim(0, len(stats))
             pl.ylabel("Number of submissions")
         pl.savefig('%s/sw_%s.png' % (destdir, typ), format='png', dpi=80)
 
 def mkpic_rating_by_os(db, env, items, destdir, title):
-    pl.figure(figsize=(6.4, 4.8), facecolor='w', edgecolor='k')
+    pl.figure(figsize=(6.4, 4.8))
     for i, os in enumerate(os_order):
         ratings = [db.select_match(env,
                         os_family[os]).get_not_none('%s' % (it,))[0]