From 57b7ebe7568a0eb8789bc8a0f64f2bbcd633a419 Mon Sep 17 00:00:00 2001 From: Michael Hanke Date: Mon, 16 May 2011 12:00:55 -0400 Subject: [PATCH] Make time figure. --- survey/Makefile | 2 +- survey/makestats | 44 ++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 41 insertions(+), 5 deletions(-) diff --git a/survey/Makefile b/survey/Makefile index 31ee5e1..9ce5fc0 100644 --- a/survey/Makefile +++ b/survey/Makefile @@ -45,7 +45,7 @@ datamodlist.txt: survey.rst upload: index.html results.html results_snippet.html jquery.form.js survey.css surveycollector.cgi rsync -rvzlhp --delete \ - --exclude='*.txt' --exclude=surveydata --exclude='*.cgi' --exclude=figures \ + --exclude='*.txt' --exclude=data --exclude='*.cgi' --exclude=figures \ --chmod=Dg+s,g+rw * neurodebian@www.pymvpa.org:/home/neurodebian/survey/ scp surveycollector.cgi neurodebian@www.pymvpa.org:/srv/neuro.debian.net/cgi-bin/ diff --git a/survey/makestats b/survey/makestats index f12a37a..a9648ed 100755 --- a/survey/makestats +++ b/survey/makestats @@ -18,6 +18,14 @@ import time # uniform colors for OS results os_colors = ['#B63537', '#4E4DA0', '#008200', 'gray'] os_order = ['linux', 'mac', 'win', 'otheros'] +time_order = ['notime', 'little', 'most', 'always'] +time_colors = ['#AA2029', '#D1942B', '#7FB142', '#69A7CE'] +time_categories = { + 'notime': "don't use it", + 'little': "less than 50%", + 'most': "more than 50%", + 'always': "always" + } # resources resource_categories = { 'vendor': 'Vendor/Project website', @@ -160,7 +168,7 @@ class DB(dict): def get_nice_name(self, id): srcs = [DB.os_dict, os_cat_names, DB.sw_dict, sw_categories, - resource_categories] + resource_categories, time_categories] for src in srcs: if id in src: return src[id] @@ -169,10 +177,9 @@ class DB(dict): def mkpic_os_per_env(db, destdir): - envs = ['pers_os', 'man_os', 'virt_host_os', 'virt_guest_os'] + envs = ['pers', 'man', 'virt', 'virt'] env_names = ['Personal', 'Managed', 'Virt. Host', 'Virt. Guest'] env_stats = {} - offset = 0 for env in envs: counts = db.get_counts(env) stats = dict(zip(os_family.keys(), [0] * len(os_family))) @@ -198,6 +205,35 @@ def mkpic_os_per_env(db, destdir): pl.ylabel("Fraction of submissions") pl.savefig('%s/ospref_by_env.png' % destdir, format='png', dpi=80) + +def mkpic_time_per_env(db, destdir): + envs = ['pers_time', 'man_time', 'virt_time'] + env_names = ['Personal', 'Managed', 'Virtual'] + env_stats = {} + for env in envs: + counts = dict(zip(time_order, [0] * len(time_order))) + counts.update(db.get_counts(env)) + total_count = np.sum(counts.values()) + for c in counts: + counts[c] = float(counts[c]) / total_count + env_stats[env] = counts + # make stacked barplot + pl.figure(figsize=(7.5, 4)) + x = np.arange(len(envs)) + bottoms = np.zeros(len(envs)) + for i, t in enumerate(time_order): + stat = [env_stats[e][t] for e in envs] + pl.barh(x, stat, left=bottoms, color=time_colors[i], + label=db.get_nice_name(t), height=.6) + bottoms += stat + pl.legend(loc='center left') + pl.yticks(x + 0.2, env_names) + pl.ylim(-0.4, len(envs)) + pl.title("Research activity time by environment") + pl.xlabel("Fraction of submissions") + pl.savefig('%s/ospref_by_env.png' % destdir, format='png', dpi=80) + + def mkpic_submissions_per_datamod(db, destdir): # simple demo spd = db.get_counts('bg_datamod') @@ -272,7 +308,7 @@ def main(srcdir, destdir): if not os.path.exists(destdir): os.makedirs(destdir) for pic in [mkpic_submissions_per_datamod, mkpic_os_per_env, mkpic_software, - mkpic_resources]: + mkpic_resources, mkpic_time_per_env]: pic(db, destdir) mkpic_rating_by_os(db, 'pers_os', ['pers_r%i' % i for i in range(1, 9)], destdir, "Ratings: Personal environment") -- 2.39.2