Python - Ayuda con gráficas en clases.

 
Vista:
Imágen de perfil de María de los Reyes

Ayuda con gráficas en clases.

Publicado por María de los Reyes (3 intervenciones) el 07/01/2015 18:22:19
Buenas tarde tengo un par de problemas al elaborar el código en unos ejercicios, necesito ayuda urgente:

Primer ejercicio: Dado un conjunto de datos en la forma (x, y) con y = f(x), cree un conjunto de clases
que permita mostrar diferentes tipos de gráficas de dichos datos: Histograma, diagrama
de barras, líneas de puntos, puntos, etc.
Mi codigo: Codepad http://codepad.org/E9zll3yR

Duda: Aquí creo la clase que necesito e introduzco las siguientes funciones, todo eso lo entiendo, pero a continuación cuando realizo el método histograma me dan unos errores. Según he leído esto se puede hacer con dos paquetes numpy y matplotlib; pero me pone para poder realizarlo con vectores no con funciones, por lo que me quedo muy descolocada, no sé como solucionarlo, al igual que no se muy bien como elegir la función en clases a la hora de ejecutarlo.
Sé que a la hora de hacer los diagramas de barras se usa también vectores pero yo lo quiero hacer con funciones ¿cómo lo hago?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Jorge De Los Santos
Val: 77
Ha disminuido su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

Ayuda con gráficas en clases.

Publicado por Jorge De Los Santos (54 intervenciones) el 09/01/2015 04:41:02
Hola María.

Te dejo un ejemplo de cómo podrías implementarlo. Evidentemente es necesario que tengas instalados los módulos NumPy y Matplotlib.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#-*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
from numpy import sin,cos,tan,log,exp,log10
 
class Graficos(object):
	"""
	fx  -  Función f(x)
	a   -  Extremo inferior del intervalo
	b   -  Extremo superior del intervalo
	n   -  Número de puntos a graficar
	"""
	def __init__(self,fx,a,b,n):
		self.X = np.linspace(a, b, n)
		x = self.X # Aux var --> Para evaluar f(x)
		self.Y = eval(fx)
 
	def linea(self):
		self.fig = plt.figure()
		self.ax = self.fig.add_subplot(111)
		self.ax.plot(self.X, self.Y)
		plt.show()
 
	def barras(self):
		self.fig = plt.figure()
		self.ax = self.fig.add_subplot(111)
		self.ax.bar(self.X, self.Y, align="center")
		plt.show()
 
	def puntos(self):
		self.fig = plt.figure()
		self.ax = self.fig.add_subplot(111)
		self.ax.scatter(self.X, self.Y)
		plt.show()
 
 
def main():
	fx = raw_input("f(x) = ")
	a = input("a = ")
	b = input("b = ")
	n = input("n = ")
	gr = Graficos(fx, a, b, n)
	menu = u"""
	Seleccione el tipo de gráfica:
	1. Linea
	2. Barras
	3. Puntos
	Presione cualquier otra opción para salir
	"""
	while True:
		print menu
		opc = input('')
		if opc == 1:
			gr.linea()
		elif opc == 2:
			gr.barras()
		elif opc == 3:
			gr.puntos()
		else:
			break
 
if __name__=='__main__':
	main()



Saludos.

Jorge De Los Santos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Reyes

Ayuda con gráficas en clases.

Publicado por Reyes (3 intervenciones) el 09/01/2015 23:30:49
Muchas gracias, creo que ahora ya sé implementarlos con esta ayuda, se ha quedado mucho más claro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar