En esta sesión aprenderemos otras formas de graficar funciones matemáticas y otras.
Antetodo, importemos las librerías necesarias
>>>import numpy as np
>>>from pylab imprt *
>>>import matplotlib.pyplot as plt
Definamos el conjunto de valores en x usando
>>>x = arange(-10,10,0.1)
Sea la función
>>>y = exp(0.1*x)*cos(x)
Para disponer de la interactividad mientras se añade opciones al gráfico, usamos
>>>plt.ion()
Ploteamos
>>>plot(x,y)
Añadimos etiqueta en el eje X
>>>xlabel("Etiqueta en el eje X")
En el eje Y
>>>ylabel("Valores en el eje Y")
Insertamos el título
>>>title("Grafico de exp(x/10)xcos(x)
El título principal
>>>plt.suptitle("Gráfico")
Ya no requiere el uso de show()
Aqui la imagen
Siguiente gráfico
Generemos valores de x / 0 < x <= 20. Incrementos de 0.1
>>> x = arange(0.01,20,0.1)
Sea y = sinx(x)/x
>>> y = sin(x)/x
Del mismo modo
>>> z = sin(x)*exp(-x)
>>>gr = plot(x,y,x,z)
>>> cad1 = text(2,0.6,r"$\frac{\sin(x)}{x}$",fontsize=20)
>>> cad2 = text(13,0.2,r"$\sin(x)\cdot e^{-x}$",fontsize=16)
>>> grid()
>>> xlabel("Tiempo / s")
Text(0.5, 0, 'Tiempo / s')
>>> ylabel("Amplitud / cm")
Text(0, 0.5, 'Amplitud / cm')
>>> title("Grafico de dos funciones")
Text(0.5, 1.0, 'Grafico de dos funciones')
>>> show()
La imagen siguiente muestra la gráfica
Gráficos múltiples en la misma ventana
Definimos a x
>>>x = arange(-2,2,0.01)
Ahora las funciones:
>>>y1 = x
>>> y2 = x**0.2
>>> y3 = x**0.25
>>> y4 = x**(1/3)
>>> y5 = x**0.5
>>> y6 = x**2
>>> y7 = x**3
>>> y8 = x**4
>>> y9 = x**5
Plotemos dentro de show()
>>> show([plot(x,y1,"r"),plot(x,y2,"b"),plot(x,y3,"g"),plot(x,y4,"m"),plot(x,y5,"c"),plot(x,y6,"y"),plot(x,y7,"r"),plot(x,y8,"g"),plot(x,y9,"b")])
La gráfica se muestra en la siguiente imagen
Vamos a añadir leyenda a un gráfico
Para ello tomaremos datos del archivo agri.txt que contiene 4 variables: Producción agrícola, Volumen de fitosanitario, Parque automotor y Financiamiento públic y privado.
Importamos pandas y leemos los datos
>>>import pandas as pd
>>>datos = pd.read_csv("D:\\pypage\\agri.txt",sep = "\t",names = ("pAgr","vFit","pAut","fPpr"))
Extraemos las variables del data.frame datos
>>> pAgr = datos.pAgr
>>> vFit = datos.vFit
>>> pAut = datos.pAut
>>> fPpr = datos.fPpr
Activamos la forma interactiva para ver lo que estamos haciendo
>>>plt.ion()
Ploteamos las variables
>>> p1 = plot(pAgr,label="Prod. agric.")
>>> p2 = plot(vFit,label="Vol. fitosanit")
>>> p3 = plot(pAut,label="Parque autom.")
>>> p4 = plot(fPpr,label="Financ. púbPriv.")
Luego añadimos elementos adicionales al gráfico
>>> plt.suptitle("Inversión agrícola")
Text(0.5, 0.98, 'Inversión agrícola')
>>> title("Modelo español: Producción anual")
Text(0.5, 1.0, 'Modelo español: Producción anual')
>>> xlabel = arange(1971,1990,1)
>>> ylabel = "En millones de dólares"
>>> p2 = plot(vFit*100,label="Vol. fitosanit")
>>> plt.legend()
<matplotlib.legend.Legend object at 0x094C8110>
>>> plt.legend(loc = "upper left")
<matplotlib.legend.Legend object at 0x094D3FF0>
Finalmente el plt.show(), aunque ya está demás.
La gráfica se muestra en la siguiente imagen
Terminaremos esta sesión, trazando gráficos que son imágenes.
En este caso debemos instalar un nuevo paquete: scikit-image
Estando en el shell del sistema (CMD del Windows) ingrese el siguiente comando
pip install -U scikit-image
Cuando termine la instalación, volvemos a la consola de Python
Ahora importamos la librería skimage
>>>from skimage import io, color
También importamos:
>>>import numpy as np
>>> import matplotlib.pyplot as plt
Ahora, los comandos necesarios:
Cargamos las imagenes hacia dos variables u objetos:
>>> img1 = io.imread("d:\\pypage\\flor01.jpg")
>>> img2 = io.imread("d:\\pypage\\flor02.jpg")
Usando subplot de mayplotlib, podemos colocar más de una imagen en la misma ventana
Le indicamos que vamos a insertar el primer subgráfico de la ventana:
>>>plt.subplot(211)
Allí insertamos la imagen
>>>io.imshow(img)
Vamos por la segunda imagen
>>>plt.subplot(212)
La segunda imagen
>>> io.imshow(img2)
La siguiente figura muestra lo que hemos hecho.
En la siguiente sesión veremos algunos gráficos estadísticos
Continuar en la siguiente sesión