# -*- coding: utf-8 -*- %matplotlib inline import numpy as np import matplotlib.pyplot as plt import csv from collections import OrderedDict %matplotlib inline plt.rc("savefig", dpi=100) # Análise dos dados referentes à pesquisa de satisfação dos alunos do Instituto de Física # Gráficos tipo pizza baseado no exemplo: # http://matplotlib.org/1.2.1/examples/pylab_examples/pie_demo.html arquivo_de_dados = "./dados/SatisfaçãoIF_UFRGS_Jan2017_Alunos.csv" Questoes = ["[Qualidade geral do seu curso.]", "[Estrutura curricular do seu curso.]", "[Integração das atividades de pesquisa com o currículo do seu curso.]", "[Integração das atividades de extensão com o currículo do seu curso.]", "[Adequação das atividades extras, tais como palestras e seminários.]", "[Estímulo à participação dos alunos em projetos de pesquisa.]", "[Estímulo à participação dos alunos em projetos de extensão.]", "[Estímulo à participação dos alunos em iniciação à docência.]", "[Equipamentos e laboratórios disponíveis para desenvolvimento de pesquisa.]", "[Acesso aos equipamentos e laboratórios para realização das atividades necessárias.]", "[Acesso aos materiais bibliográficos (livros, revistas, bases de dados, e outros) .]", "[Inovação nos métodos de ensino e uso de tecnologias no ensino.]", "[Agilidade e qualidade do atendimento prestado pelos funcionários do Instituto de Física]", "[Disponibilidade da coordenação do curso para atendimento aos alunos.]", "Sobre a comunicação interna. [Website]", "Sobre a comunicação interna. [E-mail]", "Sobre a comunicação interna. [Comunicação visual (murais, cartazes etc.)]", "Sobre a comunicação interna. [Divulgação de eventos internos e externos]", "Sobre a comunicação interna. [Canais de expressão do aluno e de solicitação de melhorias]", "Biblioteca [Conforto e adequação do ambiente para estudo]", "Biblioteca [Estado de limpeza e conservação]", "Biblioteca [Disponibilidade de computadores adequados]", "Salas de aula [Conforto]", "Salas de aula [Estado de limpeza e conservação]", "Salas de aula [Disponibilidade de materiais e/ou equipamentos adequados]", "Laboratórios de pesquisa [Conforto]", "Laboratórios de pesquisa [Estado de limpeza e conservação]", "Laboratórios de pesquisa [Disponibilidade de materiais e/ou equipamentos adequados]", "Laboratórios de pesquisa [Segurança]", "Laboratórios de ensino [Conforto]", "Laboratórios de ensino [Estado de limpeza e conservação]", "Laboratórios de ensino [Disponibilidade de materiais e/ou equipamentos adequados]", "Laboratórios de ensino [Segurança]", "Infraestrutura geral [Laboratórios de informática]", "Infraestrutura geral [Rede de internet/wireless]", "Infraestrutura geral [Salas para eventos científicos/Anfiteatro]", "Infraestrutura geral [Salas multimídia]", "Infraestrutura geral [Espaços de convivência]", "Infraestrutura geral [Segurança e Iluminação externa]", "Infraestrutura geral [Ambulatório]"] Etiquetas=["Totalmente insatisfeito", "Insatisfeito", "Satisfeito", "Totalmente satisfeito", "Não tenho opinião".decode('utf-8')] cores = ["darkred","red","green","darkgreen","antiquewhite"] # -*- coding: utf-8 -*- for Q in Questoes: Qgeral=OrderedDict([("Totalmente insatisfeito",0),("Insatisfeito",0),("Satisfeito",0),("Totalmente satisfeito",0),("Não tenho opinião",0)]) with open(arquivo_de_dados) as data_file: reader = csv.DictReader(data_file) #print Q for row in reader: #print row[Q] Qgeral[row[Q]]+=1 #Qgeral.popitem("Não tenho opinião") #print Qgeral.keys() #print Qgeral.values() plt.figure(1, figsize=(6,6)) plt.ax = plt.axes([0.1, 0.1, 0.8, 0.8]) plt.ax.text(-0.0, +1.3, "Alunos dos cursos do IF/UFRGS - Respondentes: "+str(np.sum(Qgeral.values())), size=10, ha='center') plt.pie(Qgeral.values(), explode=[0.05,0.05,0.05,0.05,0.05], colors=cores, autopct='%1.1f%%', shadow=False, startangle=0) # The default startangle is 0, which would start # the Frogs slice on the x-axis. With startangle=90, # everything is rotated counter-clockwise by 90 degrees, # so the plotting starts on the positive y-axis. plt.legend(Etiquetas, loc='best', bbox_to_anchor=(-0.05, 0.9),fontsize=12) plt.suptitle(str(Q).decode('utf-8'), fontsize=16) plt.show()