Curso matplotlib - 7 - Cargando datos desde un fichero

En esta ocasión aprenderemos como cargar los datos desde un fichero como puede ser un fichero csv.
Un fichero csv está ordenado por líneas y datos separados por un delimitador que por estandar suele ser el delimitador ','.



Para esto podríamos utilizar la librería csv o más sencillo la libreria numpy que hay que instalarla por medio de pip install numpy.

Una vez instalada el código necesario para representar los datos es más bien escaso:

import matplotlib.pyplot as plt
import numpy as np

x, y = np.loadtxt('data.txt', delimiter = ',', unpack = True)
plt.plot(x, y)
plt.xlabel('')
plt.ylabel('')
plt.title('Curso MatPlotLib\nblog.curiosoinformatico.com')
# Para añadir etiquetas o cualquier otra cosa debemos hacerlo antes de llamar a
# plt.show()
plt.show()

Y con esto y un bizcocho ya habremos terminado de representar nuestros valores.
El código como siempre está disponible en el drive del curso

Anterior Siguiente


Un fuerte abrazo!


Curso matplotlib - 6 - Diagrama de sectores

Para realizar el siguiente ejercicio vamos a partir de un código base:

import matplotlib.pyplot as plt



Al siguiente código le añadiremos las fracciones o dicho de una forma más informal, los quesitos, las actividades a las que se corresponden y los colores.


fracciones = [6, 4, 2, 3]
actividades = ['Durmiendo', 'Comiendo', 'Trabajando', 'Jugando']
colores = ['g', 'r', 'b', 'y']



Finalmente le diremos a matplotlib que dibuje nuestro diagrama de sectores:

plt.pie(fracciones, labels = actividades, colors = colores, shadow = True, startangle = 0, explode = (0, 0.1, 0, 0))

Los parámetros marcados en negrita son parámetros opcionales como vienen siendo el ángulo de inicio, el sombreado del diagrama y la extrusión de los elementos. En este caso al primer elemento Durmiendo le hemos dicho que su extrusión es 0, el segundo, comiendo le hemos indicado que 0.1 y así sucesivamente. Con todos las cosas opcionales marcadas previamente nuestro diagrama de sectores debería quedarnos como en la siguiente imagen.







No bastando con eso podemos añadir un porcentaje por medio del argumento autopct = '%1.1f%%'.
El código final debería ser similar a este:

import matplotlib.pyplot as plt

fracciones = [6, 4, 2, 3]
actividades = ['Durmiendo', 'Comiendo', 'Trabajando', 'Jugando']
colores = ['g', 'r', 'b', 'y']

plt.pie(fracciones,
        labels = actividades,
        colors = colores,
        shadow = True,
        startangle = 0,
        explode = (0, 0.1, 0, 0),
        autopct = '%1.1f%%')

plt.title('Curso MatPlotLib\nblog.curiosoinformatico.com')
# Para añadir etiquetas o cualquier otra cosa debemos hacerlo antes de llamar a
# plt.show()
plt.show()



Como siempre el código lo podemos encontrar en el drive de este curso.



Un fuerte abrazo!


Curso matplotlib - 5 - Diagramas apilados


Este tipo de gráficos son de gran utilidad cuando deseamos saber, por ejemplo, en qué expendemos nuestro tiempo a lo largo de una semana, la evolución de alguna situación, etc.




Para poder realizarlo debemos crear una variable que contenga el espacio donde ocurrirán los distintos sucesos. En esta ocasión a esta variable la llamaremos días.

dias = [1, 2, 3, 4, 5]

A continuación, definiremos la serie de sucesos que ocurrirán esos días con su contenido en horas.

durmiendo =  [8, 8, 4, 8, 8]
comiendo =   [2, 4, 8, 2, 1]
trabajando = [8, 2, 8, 4, 9]
jugando =    [4, 8, 2, 8, 4]

Y finalmente, le diremos a la matplotlib que dibuje nuestra gráfica.


plt.stackplot(dias, durmiendo, comiendo, trabajando, jugando, colors = ['m', 'c', 'r', 'b'])


El problema de esto reside en que por defecto matplotlib no nos deja poner una etiqueta para cada valor. Pero eso lo podemos solucionar de la siguiente manera:

plt.plot([], [], color = 'm', label = 'Durmiendo')
plt.plot([], [], color = 'c', label = 'Comiendo')
plt.plot([], [], color = 'r', label = 'Trabajando')
plt.plot([], [], color = 'b', label = 'Jugando')

El código final debería quedar de la siguiente manera:



Como siempre, podemos obtener este código del drive personal de estos apuntes.


Un fuerte abrazo.

Curso matplotlib - 4 - Diagrama de dispersión


"Un diagrama de dispersión o gráfica de dispersión o gráfico de dispersión es un tipo de diagrama matemático que utiliza las coordenadas cartesianas para mostrar los valores de dos variables para un conjunto de datos. Los datos se muestran como un conjunto de puntos, cada uno con el valor de una variable que determina la posición en el eje horizontal (x) y el valor de la otra variable determinado por la posición en el eje vertical (y)" https://es.wikipedia.org




Desde matplotlib podemos realizar este tipo de diagrama de una forma super-sencilla. Para ello, necesitaremos una lista de puntos en x y una lista de puntos de y.

Dicho en código:
x = [1, 2, 3, 4, 5, 6, 7, 8]
y = [3, 6, 1, 4, 5, 6, 7, 2]

Después de esto, nuestra misión será invocar a la función plt.scatter con los siguientes parámetros:

plt.scatter(x, y, label = 'Visitas de esta hora', color = 'g', marker = 'x', s = 100)

La etiqueta corresponde a la etiqueta que le pondremos en la leyenda si deseamos ponérsela. Recordamos que para poner una leyenda invocábamos a la función plt.legend()




Ya hablamos del atributo color en su momento en el post anterior, el atributo marker, nos indica qué marcador utilizará para dibujar los puntos. Los distintos marcadores los podemos encontrar aquí. Finalmente el atributo s indica size, es decir, tamaño. Es opcional y si no lo ponemos cogerá por defecto s = 1, cuanto mayor sea el número que pongamos mayor será el tamaño de nuestro marcador.


El código, como siempre, lo podemos encontrar en el drive de este curso.

Un fuerte abrazo.

Curso matplotlib - 3 - Diagrama de barras e histogramas

A continuación mostraremos los pasos para crear un diagrama de barras y un histograma con matplotlib en Python.





Al igual que para la recta utilizábamos la función plot, para la creación de una diagrama de barras utilizaremos la función bar.

Quedándonos así el código de la siguiente manera: 

import matplotlib.pyplot as plt

x = [5, 9, 10, 20, 43]
y = [3, 2, 40, 2, 20]

x2 = [21, 22, 53, 53, 43]
y2 = [32, 5, 6, 32, 34]

plt.bar(x, y, label = 'Primer Experimento')
plt.bar(x2,y2, label = 'Segundo Experimento')
plt.xlabel('Largo')
plt.ylabel('Ancho')
plt.title('Curso MatPlotLib\nblog.curiosoinformatico.com')


# Para añadir etiquetas o cualquier otra cosa debemos hacerlo antes de llamar a
# plt.show()
plt.legend()
plt.show()


Respecto al tutorial anterior hemos modificado los apartados señalados en negrita.
En la definición de las variables hemos añadido nuevos valores para tener un mayor rango y hemos sustituido plt.plot por plt.bar

No obstante, no hace falta ser muy avispado para observar que algo sigue fallando. No podemos distinguir entre el Experimento 1 y el Experimento 2 ya que ambos son del mismo color. Para esto, matplotlib tiene un nuevo argumento que es el color. El color puede ser referenciado por medio de un código hexadecimal, por el nombre del color preprogramado o por una letra, por ejemplo, r para rojo, g para verde, etc.




El código que hemos cambiado/añadido para obtener este resultado es el siguiente:

plt.bar(x, y, label = 'Primer Experimento', color = 'c')
plt.bar(x2,y2, label = 'Segundo Experimento', color = 'g')


Histograma:

A continuación aprenderemos a realizar un histograma bastante sencillo que analice las edades de una población. Para ello primero necesitaremos una muestra con todas las edades de la población. Estas las representaremos en una lista:

edades_de_la_poblacion = [44,11,33,45,21,12,32,20,25,24,26,14]

Para clasificar estas edades necesitaremos unos bins o cajas contenedoras. Estas agruparán las edades de 0 a 10, de 10 a 20, de 20 a 30, etc.

Estos clasificadores los crearemos en una lista:

bins = [0, 10, 20, 30, 40]







Finalmente llamaremos a la representación del histograma pasándole la muestra y los clasificadores como argumentos. También le deberemos de pasar el tipo de histograma que en este caso lo llamaremos de barras. Tipo 'bar'  y un argumento opcional que nos permitirá separar las columnas.

La sentencia al completo sería así:

plt.hist(edades_de_la_poblacion, bins, histtype = 'bar', rwidth = 0.6)


Si el último argumento no lo escribimos o lo ponemos con un valor = 1 el resultado sería el siguiente:



Con esto hemos concluido este apartado. Como siempre, un fuerte abrazo. Los archivos los podemos encontrar en el drive de este curso: 



Curso matplotlib - 2 - leyendas títulos y etiquetas


A continuación veremos formas de customización de matplotlib como son el hecho de crear etiquetas o labels. Un Label es cómo llamamos a una variable. Por ejemplo, podríamos crear dos etiquetas para medir los lados de un cuadrado.

Las etiquetas las he llamado Largo y Ancho, para el título simplemente invocamos a la función plt.title('Con nuestro título favorito')




Podemos crear nuevas variables que plasmar en nuestro lienzo. Para ello creamos nuevos puntos como pueden ser, por ejemplo: 

x2 = [1, 2, 3]
y2 = [4, 5, 6]

Y trazamos la líneas.

plt.plot(x2,y2)

El resultado será el siguiente



Ahora disponemos de dos líneas en pantalla pero no tenemos del todo claro de qué es cada  línea. Aquí es donde entra el uso de la leyenda. Una leyenda nos brinda información acerca de qué significa cada línea.

Para crear la leyenda, antes de invocar a plt.show() invocamos la función plt.legend()
Pero con esto matplotlib no tiene suficiente información para saber a qué corresponde cada función. Para ello le tenemos que indicar a la hora de llamar a plot qué etiqueta corresponde a cada cosa. Un ejemplo sería.

plt.plot(x,y, label="Cuadrado")
plt.plot(x2,y2, label="Rectángulo)


El resultado final deberá ser el siguiente:


El código lo podéis encontrar en el drive que he dedicado a este curso. 


Con esto damos por concluido el segundo tutorial sobre matplotlib.


Curso MatPlotLib - 1 - Instalación y primeros pasos




Sobre las bases: Como bien sabemos, matplotlib es una librería para Python y por ende el querer aprender cómo se utiliza da por hecho que ya conocemos el lenguaje de programación Python en profundidad. Así como el hecho de la instalación del intérprete, añadir la ruta del mismo en Windows, etc.

Aunque normalmente me valga de distribuciones GNU/Linux para hacer cualquier cosa, esta vez, por petición popular realizaré el curso en Windows 10. No obstante los pasos deberían ser los mismos.

La primera acción que deberemos realizar es -lógicamente- instalar la librería. Para ello utilizaremos pip. Ejecutamos 

pip install matplotlib

A continuación empezaremos a escribir nuestro primera aplicación con matplotlib, para ello deberemos abrir nuestro IDL e importar la librería. En este caso para simplificar las cosas yo la importaré como plt.

import matplotlib.pyplot as plt

Al crear un plot trazaremos una línea que pase por una serie de puntos x1, x2, x3 e y1, y2, y3

plt.plot([1,2,3],[4,5,6])

Nuestro plot recibe dos parámetros, (x, y), que como podemos observar en el código son dos listas con diferentes puntos.

Con esto nuestro gráfico ya estaría dibujado, no obstante, al igual que sucede con PyGame debemos llevarlo a la pantalla, es decir, debemos hacerlo aparecer.


plt.show()


Ejecutamos nuestro programa bien sea desde el intérprete o desde la terminal y...

Voila! Ya tenemos nuestra primera gráfica creada.


A la mínima en la que nos fijemos un poco en nuestra creación observaremos que tiene unos botones en la parte inferior. De las flechas ya hablaremos más adelante, la cruz nos permite desplazarnos por la gráfica, la lupa nos permite hacer zoom a un determinado punto, deberemos trazar un rectángulo con ésta para seleccionar el área. Si al trazar el rectángulo lo realizamos con el botón derecho del ratón realizaremos un zoom inverso.




El siguiente botón nos permite modificar los espacios que hay alrededor de la gráfica pero ya hablaremos de él cuando nos toque tocarlo y el último nos permite guardar la gráfica en una serie de distintos formatos. 



Con esto damos por concluida la instalación y los primeros pasos de matplotlib.

Como siempre, un fuerte abrazo.



Git en 15 minutos

Recuerdo que en su momento me costó lo suyo aprender a usarlo


Toneladas de documentación, cientos y cientos de usuarios que creían tener nociones de git enseñando lo mismo de formas diferentes provocaban al final un lío tremendo en cualquier mente "no privilegiada". A mi me tocó aprender a usar Git en su tiempo como a la mayoría de las personas que conozco, buscando esto en google, buscando esto otro en google, buscando...



Imagen Obtenida de try.github.io


GitHub ha puesto a nuestra disposición un servicio gratuito para aprender las bases de Git. Se puede acceder desde la siguiente dirección web:  https://try.github.io 


De forma muy bien explicada e interactiva podremos ver paso a paso las bases de Git y al finalizar nos otorgará una medallita bastane graciosa y nos dará un enlace a un curso que profundiza más aún.



Con aire futurístico y de diseño similar a la película Tron Legacy podremos realizar una serie de tutoriales interactivos donde aprender todos los secretos de Git si deseamos profundizar mucho más.

Los videotutoriales recomiendo verlos incluso a los usuarios más experimentados ya que resultan bastante amenos e incluso divertidos de seguir y nos vienen bien para recordar cosas o quien sabe, aprender nuevas que desconocíamos. La lástima, es que este segundo, es de pago a partir del segundo nivel.

Como no todos tenemos el dinero para pagar un curso especializado, github nos provee de una serie de videotutoriales desde youtube en la siguiente lista de reproducción:







Si tenéis más documentación easy-learning sobre Git, sed libres de publicar un comentario.

Un fuerte abrazo!