]> git.donarmstrong.com Git - neurodebian.git/commitdiff
Merge branch 'master' of git://git.debian.org/pkg-exppsy/neurodebian
authorYaroslav Halchenko <debian@onerussian.com>
Mon, 16 May 2011 16:38:05 +0000 (12:38 -0400)
committerYaroslav Halchenko <debian@onerussian.com>
Mon, 16 May 2011 16:38:05 +0000 (12:38 -0400)
* 'master' of git://git.debian.org/pkg-exppsy/neurodebian:
  Fix div by zero prob.
  Make time figure.

Conflicts:
survey/makestats -- in list of sources for get_nice_name

1  2 
survey/Makefile
survey/makestats

diff --combined survey/Makefile
index ef2d8f1793bd3992b8f8c54f8c765b969cab54b1,9ce5fc06e945781dfd3d880c88327a343e21eedb..e817fc8ed400aacc1765ccd58b90db052107c2b7
@@@ -18,7 -18,7 +18,7 @@@ results_snippet.html: results.htm
                | tail -n$$(echo "$$(wc -l < results.html) - $$(grep -n '<body>' \
                < results.html | cut -d ':' -f 1,1) - 2" | bc ) > $@
  
 -statfigures: oslist.txt swlist.txt datamodlist.txt
 +statfigures: oslist.txt swlist.txt datamodlist.txt employer-dd-list.txt position-dd-list.txt
  # create "lockfile'
        @touch $@
        @[ "$$(cat nsubmissions.stamp 2>/dev/null || echo)" != "$$(ls -1 data |wc -l)" ] \
@@@ -43,15 -43,9 +43,15 @@@ datamodlist.txt: survey.rs
        grep '"bg_datamod"' survey.rst | sed -e 's/.*name="bg_datamod" value="//' \
                -e 's," />,: ",' -e 's,<br />$$,",' -e 's/ "$$/ "Other"/' > $@
  
 +# Generic rule to extract from drop-down selections
 +%-dd-list.txt: survey.rst
 +      @echo "I: Extracting fields for $* into $@"
 +      @sed -n -e '/bg_$*/,/\/tr/p' survey.rst \
 +      | sed -ne '/option/s,.*value="\([^"]*\)" *label=\("[^"]*"\)>.*,\1: \2,gp' >| $@
 +
  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 --combined survey/makestats
index 3829f1312a2c64e07a4f89541d5dc5e48873252f,09b0c9415b20fe6d7f39a554c2c836dc841cfa7d..7da486e97ba46760ec4e3beb84f5e43ad3f53964
@@@ -18,6 -18,14 +18,14 @@@ import tim
  # 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',
@@@ -93,8 -101,6 +101,8 @@@ class DB(dict)
      os_dict = load_list2dict('oslist.txt')
      datamod_dict = load_list2dict('datamodlist.txt')
      sw_dict = load_list2dict('swlist.txt')
 +    position_dict = load_list2dict('position-dd-list.txt')
 +    employer_dict = load_list2dict('employer-dd-list.txt')
  
      def __init__(self, srcdir):
          # eats the whole directory
  
      def get_nice_name(self, id):
          srcs = [DB.os_dict, os_cat_names, DB.sw_dict, sw_categories,
-                 resource_categories, DB.datamod_dict, DB.position_dict,
-                 DB.employer_dict]
 -                resource_categories, time_categories, DB.datamod_dict]
++                resource_categories, time_categories,
++                DB.datamod_dict, DB.position_dict, DB.employer_dict]
          for src in srcs:
              if id in src:
                  return src[id]
  
  
  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)))
              stats[os_family_rev[os]] += counts[os]
          total_count = np.sum(stats.values())
          for osf in stats:
-             stats[osf] = float(stats[osf]) / total_count
+             if not total_count:
+                 stats[osf] = 0
+             else:
+                 stats[osf] = float(stats[osf]) / total_count
          env_stats[env] = stats
      # make stacked barplot
      pl.figure(figsize=(6.4, 4.8))
      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_key(db, destdir, key, title, sortby='name',
                              multiple=False):
      counts = db.get_counts(key)
@@@ -294,7 -329,7 +332,7 @@@ def main(srcdir, destdir)
          db, destdir, 'bg_employer', title='Submissions per venue', sortby='count')
  
      for pic in [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")