En este post vamos a ver algunas formas de visualización. En nuestro caso visualizaremos los datos de temperaturas del observatorio del Retiro en Madrid. La librería matplotlib contiene una amplia variedad de herramientas para el visualizado de datos, es muy sencillo generar gráficos de líneas, de puntos o histogramas. In particular, vamos a utilizar el módulo matplotlib.pyplot porque es el de uso más sencillo, pyplot permite generar visualizaciones paso a paso.
from matplotlib import pyplot as plt
años = [2010, 2011, 2012, 2013, 2014, 2015, 2016]
temperatura_media = [14.71, 16.04, 15.51, 15.03, 16.07, 16.60, 16.04]
# crea un gráfico lineal , años en el eje x y tempertura en el y
plt.plot(años, temperatura_media, color='green', marker='o', linestyle='solid')
# añadimos un título
plt.title("Temperatura media Madrid-Retiro")
# añadimos una etiqueta al eje y
plt.ylabel("Grados centígrados ºC")
plt.show()
Para hacer un histrograma hacemos lo siguiente.
años = ["2015", "2016", "2017", "2018", "2019"]
temp_enero = [6.2, 8.4, 6.9, 7.2, 6.5]
# las barras tienen por defecto una anchura de 0,8 de mod que le
añadiremos 0,5 para centrar las barras
xs = [i + 0.5 for i, _ in enumerate(años)]
# muestra el histograma con los años en la x y la temperatura en la y
plt.bar(xs, temp_enero)
plt.ylabel("# Madrid-Retiro")
plt.title("Temperaturas medias de Enero")
# ponemos las etiquetas en cada barra
del eje x del histograma
plt.xticks([i + 0.5 for i, _ in enumerate(años)], años)
plt.show()
Visualizar datos de un fichero .csv
Si queremos que nos muestre un color más intenso donde hay mayor densidad de puntos, podemos añadir el parámetro alpha con un número entre 0 y 1 que mostrará los puntos más oscuros o más claros.
Buscando correlacciones
Para buscar correlacciones entre nuestros datos, podemos tener una vista general de los datos de cualquier columna correlaccionados con el resto de columnas, para ello basta con poner estas instrucciones.
En la imagen podemos ver que la correlación de la columna elegida es siempre 1 porque es ella misma y luego en función de si los valores difieren o se asemejan a los de nuestra columna aparecerán más arriba o más abajo con más o menos puntuación entre 0 y 1 aunque esto es así porque en nuestro caso particular todas las correlaciones son positivas, si fueran negativas los valores estarían entre -1 y 0. Así que, en términos generales los valores de la correlación estarán entre -1 y 1. También hay que tener en cuenta que esta función sólo mide correlaciones lineales.
Otra forma de comprobar la correlación entre variables sería la función scatter_matrix() de la librería pandas.
from pandas.plotting import scatter_matrix
from pandas.plotting import scatter_matrix
attributes = ["Anno", "ENE", "FEB","MAR","ABR","MAY","JUN","JUL","AGO","SEP","OCT","NOV","DIC","AÑO"]
scatter_matrix(datos[attributes],
figsize=(12, 8))
Si tenemos muchas columnas, además de tardar mucho, nos generará una gráfica demasiado grande, en la que será difícil ver nada.
Es mejor compararlas de pocas en pocas, por ejemplo la temperatura media anual con la de enero.
from pandas.plotting import scatter_matrix
attributes = ["AÑO", "ENE"]
scatter_matrix(datos[attributes],
figsize=(12, 8))
Ahora es mucho más fácil buscar la correlación entre enero y la temperatura media anual. Podemos ver que las gráficas de la diagonal se comparan los datos consigo mismos por lo que son relevantes. Una vez encontradas las correlaciones podemos tener un vistazo más preciso haciendo.
datos.plot(kind="scatter", x="ENE", y="AÑO",
alpha=0.1)
plt.axis([0, 10, 0, 20])
No hay comentarios:
Publicar un comentario