Skip to content

Instantly share code, notes, and snippets.

@geopelia
Created May 9, 2014 14:00
Show Gist options
  • Save geopelia/d8fa199d42ddef7c95bc to your computer and use it in GitHub Desktop.
Save geopelia/d8fa199d42ddef7c95bc to your computer and use it in GitHub Desktop.
Ejemplos de graficos usando la libreria matplotlib
from pylab import *
import cx_Oracle
# Periodos se refiere a cantidad de semestres
periodos = []
# Listas para promedio de notas por periodo y desviación standar
prom = []
desstd = []
# Listas para indice academico y su desviación
indice = []
desvindice = [1.74, 3.21, 1.65, 2.48, 2.16, 0, 2.94, 2.51, 0, 1.63, 2.98, 2.65]
#Conexion a BD
con = cx_Oracle.connect("user/[email protected]:1523/XE")
cur = con.cursor()
cur.execute('select nombre from lapsos order by IDLAPSOS asc')
for result in cur:
periodos.append(result[0])
# Promedio de Notas
cur.execute('select round(AVG(notas), 2), round(STDDEV(notas), 2) from notas GROUP BY IDLAPSOS ORDER BY IDLAPSOS asc')
for result in cur:
prom.append(result[0])
desstd.append(result[1])
# Indice Academico (UA)
cur.execute('select round(sum(A.notas * B.UA) / sum (b.UA), 2) from notas a, CATEDRAS b where A.IDCATEDRAS = b.IDCATEDRAS GROUP BY IDLAPSOS ORDER BY IDLAPSOS asc')
for result in cur:
indice.append(result[0])
cur.close()
con.close()
# Listas que guardar un conjunto de numeros desde 1..len(prom)
rango = arange(len(prom))
# Para generar grafico de barras, primer ejemplo baso en promedio y el otro en UA
barh(rango, prom, xerr=desstd, align='center', alpha=0.4)
# barh(rango, indice, xerr=desvindice, align='center', alpha=0.4)
yticks(rango, periodos)
ylabel('Periodo')
# Para generar grafico lineal simple
# p1 = plot(prom, label='Promedio')
# p2 = plot(rango,indice, label='Indice Academico')
# legend( loc=2, borderaxespad=0.)
# ylabel('Notas')
# xlabel('Periodo')
# Guardamos en una imagen y mostramos
title('Calificaciones durante la Universidad')
grid(True)
savefig("prom.png")
show()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment