previous | 7 of 10 | next |
Gratificando con MatplotlibGeneralidades de MatplotlibPara ésta parte vamos a usar una terminal de Python (no de iPython que es la que generalmente usamos) Cargando la librería en el entorno.Cuando se va a usar la librería se debe de cargar en el entorno (como ya se vio anteriormente) import matplotlib.pyplot as plt Las dos zonas principales donde se dibujaran o sobre las que se interactuará serán:
Ventanas, y configuración de sesión.Lo primero que se va a necesitar es que la sesión esté en modo interactivo, esto es: que cada que se realice un cambio en ésta, se muestre automáticamente. plt.isinteractive() cuando ejecute esta linea la respuesta es false entonces tiene el modo interactivo desactivado. Para cambiar de modo interactivo de a activo se usa plt.ion() y para regresar al modo interactivo apagado se usa plt.ioff().
Otras funcionalidades interesantes son las que provee, las funciones asociadas plt, hold() y ishold(), la primera permite decidir si queremos que los gráficos se sobrescriban, que en el mismo gráfico tengamos diferentes gráficas representadas, o para que el gráfico se limpie y se dibuje la nueva gráfica cada vez. La segunda permite saber el estado de hold(). Si usamos plt.ishold() nos responderá True o False.
Para borrar todos los gráficos en el modo interactivo se usa plt.clf(), o plt.close() para cerrar la ventana. También se pueden usar diferentes ventanas de gráficos al mismo tiempo. Esto se hace nombrando a cada una de las ventanas en las que vamos a trabajar cuando se llama plt.figure('nombre').
Si no se quiere dibujar los gráficos en dos ventanas, y mas bien tener varios gráficos en la misma. Es posible hacer eso sin problemas con la ayuda de plt.subplot(). Con plt.subplot() podemos indicar el número de filas y columnas que corresponderán a como dividimos la ventana.
Modificar características de las gráficasEn el siguiente script se puede ver algunas de las modificaciones que se pueden hacer en las gráficas. import matplotlib.pyplot as plt plt.ion() # Nos ponemos en modo interactivo plt.figure('valores por defecto')# Creamos una ventana donde dibujamos el gráfico con la configuración por defecto plt.suptitle('Titulo valores por defecto') # Esto sirve para poner título dentro de la ventana plt.plot((1,2,3,4,5), label = 'por defecto') # Hacemos el plot plt.legend(loc = 2)# Colocamos la leyenda en la esquina superior izquierda plt.rc('lines', linewidth = 2)# A partir de aquí todas las líneas que dibujemos irán con ancho doble plt.rc('font', size = 18)# A partir de aquí las fuentes que aparezcan en cualquier gráfico en la misma sesión tendrán mayor tamaño plt.figure('valores modificados') plt.suptitle('Titulo valores modificados') plt.plot((1,2,3,4,5), label = u'linea más ancha y letra más grande') plt.legend(loc = 1) Otras posibles configuraciones de la gráfica se pueden ver en la ayuda de ipython y online. Configuración del gráficoCon plt.axes(), que sirve para llamar y/o configurar a un crea de gráfico. Podemos definir la posición, el tamaño, el color del {rea del fondo. En el siguiente ejemplo se pueden ver algunas configuraciones. import matplotlib.pyplot as plt import numpy as np plt.ion() # Ponemos la sesión como interactiva si no está plt.axes() # Coloca un área de gráfico con los valores por defecto # Dibuja una exponencial de 0 a 10 plt.plot(np.exp(np.linspace(0,10,100))) # Dibuja una nueva área de gráfica colocada y con ancho y largo definido por [0.2,0.55,0.3,0.3] y con gris como color de fondo plt.axes([0.2,0.55,0.3,0.3], axisbg = 'gray') plt.plot(np.sin(np.linspace(0,10,100)), 'b-o', linewidth = 2)
Es posible usar plt.axes() como sustituto de plt.subplot() si se quiere dibujar gráficos que no tengan que tener una forma ‘regular’ dentro de la ventana. En este caso si se quiere borrar el área del gráfico podemos usar plt.delaxes(). También se puede hacer que no aparezca la ‘caja’ donde se dibuja el gráfico con plt.box() o si no hay ‘caja’ y queremos que aparezca podemos llamar a plt.box() y volver a hacer aparecer la ‘caja’. Otra cosa de utilidad es colocar una rejilla en el gráfico mediante plt.grid(). Nota: Se pueden hacer también axes polares con plt.axes( polar = True), rejillas para polares con plt.rgrid() y plt.thetagrids() Matplotlib dibuja los ejes tal que se ajusten al gráfico pero si eso no es lo que nos interese en algún momento, entonces se puede hacer uso de plt.axis(). Esta Nos permite definir la longitud de los ejes, si queremos que aparezcan los mismos, si queremos que estos estén escalados,... Si solo nos interesa configurar uno de los ejes y dejar que el otro lo maneje matplotlib podemos usar plt.xlim(), plt.xscale(),plt.ylim() y plt.yscale(). Si queremos dejar el eje x o el eje y con escala logarítmica podemos usar, respectivamente, plt.semilogx() o plt.semilogy(). Podemos dibujar un segundo eje x o un segundo eje y usando plt.twinx() o plt.twiny, respectivamente. También podemos establecer unos márgenes alrededor de los límites de los ejes usando plt.margins(). Por último, podemos etiquetar nuestros ejes con plt.xlabel() y plt.ylabel()
Las funciones plt.axvline() y plt.axhline() dibujan líneas verticales y horizontales en la x o en la y que le digamos mientras que plt.axvspan y plt.axhspan dibujan recuadros entre las coordenadas x o y que queramos, respectivamente.
El uso del texto dentro de las gráficas se muestra en el siguiente ejemplo:
Otros tipos de gráfico son plt.plot_date(), que es similar a plt.plot() considerando uno o ambos ejes como fechas, y plt.plotfile(), que dibuja directamente desde los datos de un fichero. Otro tipo de gráfico sería el que podemos obtener con plt.stem(). Dibuja líneas verticales desde una línea base.
|
||
previous | 7 of 10 | next |