Q003 - Qual è il grado di sviluppo del laboratorio?


In [1]:
# -*- coding: UTF-8 -*-

# Render our plots inline
%matplotlib inline 

import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import seaborn
import shutil

pd.set_option('display.mpl_style', 'default') # Make the graphs a bit prettier, overridden by seaborn
pd.set_option('display.max_columns', None) # Display all the columns
plt.rcParams['font.family'] = 'sans-serif' # Sans Serif fonts for all the graphs

# Reference for color palettes: http://web.stanford.edu/~mwaskom/software/seaborn/tutorial/color_palettes.html

# Change the font
matplotlib.rcParams.update({'font.family': 'Source Sans Pro'})

In [2]:
# Load csv file first
data = pd.read_csv("data/lab-survey.csv", encoding="utf-8")

In [3]:
# Check data
#data[0:4] # Equals to data.head()

In [4]:
%%capture output

# Save the output as a variable that can be saved to a file
# Get the distribution of way of living
grado = data["D3"].value_counts(dropna=False)
print "Data:"
print grado
print ""
print "Data %:"
print data["D3"].value_counts(normalize=True,dropna=False) * 100

In [5]:
# Save+show the output to a text file
%save Q003-GradoSviluppo01.py str(output)
shutil.move("Q003-GradoSviluppo01.py", "text/Q003-GradoSviluppo01.txt")


The following commands were written to file `Q003-GradoSviluppo01.py`:
Data:
primo anno di vita funzionante                 39
realizzazione                                  10
secondo anno di vita funzionante                7
terzo anno di vita funzionante e successivi     6
raccolta idee e persone                         3
progettazione                                   2
Altro                                           2
in chiusura                                     1
NaN                                             0
dtype: int64

Data %:
primo anno di vita funzionante                 55.714286
realizzazione                                  14.285714
secondo anno di vita funzionante               10.000000
terzo anno di vita funzionante e successivi     8.571429
raccolta idee e persone                         4.285714
progettazione                                   2.857143
Altro                                           2.857143
in chiusura                                     1.428571
NaN                                             0.000000
dtype: float64


In [6]:
# Swap nan for a more understandable word
old_dict = grado.to_dict()
new_dict = {}
for i in old_dict:
    if type(i) is float and np.isnan(i):
        new_dict["Nessuna risposta"] = old_dict[i]
    else:
        new_dict[i.capitalize()] = old_dict[i]

gradou = pd.Series(new_dict)
grado = gradou.order()

In [7]:
# Plot the data
plt.figure(figsize=(8,6))
plt.xlabel(u'Grado di sviluppo', fontsize=16)
plt.ylabel('Lab', fontsize=16)
plt.title(u"Qual è il grado di sviluppo del laboratorio?", fontsize=18, y=1.02)
my_colors = seaborn.color_palette("husl", len(grado)) # Set color palette
grado.plot(kind="bar",color=my_colors)
plt.savefig("svg/Q003-GradoSviluppo01.svg")
plt.savefig("png/Q003-GradoSviluppo01.png")
plt.savefig("pdf/Q003-GradoSviluppo01.pdf")



In [8]:
%%capture output

# Save the output as a variable that can be saved to a file
# Order of the choices
grado_order = ["Nessuna risposta",
               "Raccolta idee e persone",
               "Progettazione",
               "Realizzazione",
               "Primo anno di vita funzionante",
               "Secondo anno di vita funzionante",
               "Terzo anno di vita funzionante e successivi",
               "In chiusura"]

grado2 = grado.reindex(grado_order)

# Get the distribution of way of living, reindexed
print "Data:"
print grado2
print ""
print "Data %:"
grado2_normalized = data["D3"].value_counts(normalize=True, dropna=False) * 100
print grado2_normalized.reindex(grado_order)

In [9]:
# Save+show the output to a text file
%save Q003-GradoSviluppo02.py str(output)
shutil.move("Q003-GradoSviluppo02.py", "text/Q003-GradoSviluppo02.txt")


The following commands were written to file `Q003-GradoSviluppo02.py`:
Data:
Nessuna risposta                                0
Raccolta idee e persone                         3
Progettazione                                   2
Realizzazione                                  10
Primo anno di vita funzionante                 39
Secondo anno di vita funzionante                7
Terzo anno di vita funzionante e successivi     6
In chiusura                                     1
dtype: int64

Data %:
Nessuna risposta                              NaN
Raccolta idee e persone                       NaN
Progettazione                                 NaN
Realizzazione                                 NaN
Primo anno di vita funzionante                NaN
Secondo anno di vita funzionante              NaN
Terzo anno di vita funzionante e successivi   NaN
In chiusura                                   NaN
dtype: float64


In [10]:
# Plot the data
plt.figure(figsize=(8,6))
plt.xlabel(u'Grado di sviluppo', fontsize=16)
plt.ylabel('Lab', fontsize=16)
plt.title(u"Qual è il grado di sviluppo del laboratorio?", fontsize=18, y=1.02)
my_colors = seaborn.color_palette("husl", len(grado2)) # Set color palette
grado2.plot(kind="bar",color=my_colors)
plt.savefig("svg/Q003-GradoSviluppo02.svg")
plt.savefig("png/Q003-GradoSviluppo02.png")
plt.savefig("pdf/Q003-GradoSviluppo02.pdf")



In [11]:
%%capture output

# Save the output as a variable that can be saved to a file
# Get "other" data
grado_other = data["D3[other]"].str.lower().value_counts()
print "Data:"
print grado_other
print ""
print "Data %:"
print data["D3[other]"].str.lower().value_counts(normalize=True) * 100

In [12]:
# Save+show the output to a text file
%save Q003-GradoSviluppo03.py str(output)
shutil.move("Q003-GradoSviluppo03.py", "text/Q003-GradoSviluppo03.txt")


The following commands were written to file `Q003-GradoSviluppo03.py`:
Data:
inaugurazione 13 settembre 2014                                 1
in pieno cambiamento della forma sociale, da settore di cooperativa ad associazione culturale.    1
dtype: int64

Data %:
inaugurazione 13 settembre 2014                                 1.428571
in pieno cambiamento della forma sociale, da settore di cooperativa ad associazione culturale.    1.428571
dtype: float64


In [13]:
# Plot bar
plt.figure(figsize=(8,6))
plt.title(u'Qual è il grado di sviluppo del laboratorio? Altro', fontsize=18, y=1.02)
plt.xticks(range(len(grado_other.index)),grado_other.index,rotation=90)
plt.xlabel('Grado di sviluppo', fontsize=16)
plt.ylabel('Lab', fontsize=16)
ind = np.arange(len(grado_other))   # the x locations for the groups
width = 0.35                         # the width of the bars

my_colors = seaborn.color_palette("husl", len(grado_other)) # Set color palette
rect1 = plt.bar(ind,grado_other,width,color=my_colors,align='center')
plt.savefig("svg/Q003-GradoSviluppo03.svg")
plt.savefig("png/Q003-GradoSviluppo03.png")
plt.savefig("pdf/Q003-GradoSviluppo03.pdf")



In [13]: