Creación de una trama de serie temporal con Seaborn y Pandas

En este artículo, aprenderemos cómo crear una trama de serie temporal con Seaborn y Pandas. Analicemos algunos conceptos:

  • Pandas es una biblioteca de código abierto construida sobre la biblioteca NumPy. Es un paquete de Python que brinda varias estructuras de datos y operaciones para manipular datos numéricos y estadísticas. Es principalmente popular para importar y analizar datos mucho más fácilmente. Pandas es rápido y de alto rendimiento y productivo para los usuarios.
  • Seaborn es una gran biblioteca de visualización para el trazado de gráficos estadísticos en Python. Proporciona hermosos estilos predeterminados y paletas de colores para formar gráficos estadísticos más atractivos. Está construido sobre la biblioteca matplotlib más alta y también está estrechamente integrado con las estructuras de información de pandas.
  • Un gráfico de tiempo (a veces llamado gráfico estadístico) muestra valores contra el reloj. Son casi como gráficos xy, pero mientras que un gráfico xy puede trazar una distribución de variables «x» (por ejemplo, altura, peso, edad), los diagramas de tiempo solo pueden mostrar el tiempo en el eje x. A diferencia de los gráficos circulares y de barras, estos gráficos no tienen categorías. Los gráficos de tiempo son buenos para mostrar cómo cambian los datos con el tiempo. Por ejemplo, este tipo de gráfico funcionaría bien si estuviera muestreando datos aleatoriamente.

Pasos necesarios

  1. Importar paquetes
  2. Importar/Cargar/Crear datos.
  3. Trace el gráfico de la serie temporal sobre los datos mediante el gráfico de líneas (ya que tsplot se reemplazó con el gráfico de líneas desde septiembre de 2020).

Ejemplos

Aquí, creamos datos aproximados para comprender el gráfico de la serie temporal con la ayuda de algunos ejemplos. Vamos a crear los datos:

Python3

# importing packages
import pandas as pd
  
# creating data
df = pd.DataFrame({'Date': ['2019-10-01', '2019-11-01', 
                            '2019-12-01','2020-01-01', 
                            '2020-02-01', '2020-03-01',
                            '2020-04-01', '2020-05-01',
                            '2020-06-01'],
                     
                   'Col_1': [34, 43, 14, 15,
                             15, 14, 31, 25, 62],
                     
                   'Col_2': [52, 66, 78, 15, 15,
                             5, 25, 25, 86],
                     
                   'Col_3': [13, 73, 82, 58, 52,
                             87, 26, 5, 56],
                     
                   'Col_4': [44, 75, 26, 15, 15,
                             14, 54, 25, 24]})
  
# view dataset
display(df)

Producción:

Ejemplo 1: Gráfica de serie de tiempo simple con una sola columna usando una gráfica de líneas

Python3

# importing packages
import seaborn as sns
import pandas as pd
  
# creating data
df = pd.DataFrame({'Date': ['2019-10-01', '2019-11-01', 
                            '2019-12-01','2020-01-01', 
                            '2020-02-01', '2020-03-01',
                            '2020-04-01', '2020-05-01', 
                            '2020-06-01'],
                     
                   'Col_1': [34, 43, 14, 15, 15,
                             14, 31, 25, 62],
                     
                   'Col_2': [52, 66, 78, 15, 15,
                             5, 25, 25, 86],
                     
                   'Col_3': [13, 73, 82, 58, 52,
                             87, 26, 5, 56],
                   'Col_4': [44, 75, 26, 15, 15,
                             14, 54, 25, 24]})
  
# create the time series plot
sns.lineplot(x = "Date", y = "Col_1",
             data = df)
  
plt.xticks(rotation = 25)

Producción :

Ejemplo 2: (Gráfica de serie de tiempo simple con varias columnas usando una gráfica de líneas)

Python3

# importing packages
import seaborn as sns
import pandas as pd
  
# creating data
df = pd.DataFrame({'Date': ['2019-10-01', '2019-11-01', 
                            '2019-12-01','2020-01-01', 
                            '2020-02-01', '2020-03-01',
                            '2020-04-01', '2020-05-01', 
                            '2020-06-01'],
                     
                   'Col_1': [34, 43, 14, 15, 15,
                             14, 31, 25, 62],
                     
                   'Col_2': [52, 66, 78, 15, 15,
                             5, 25, 25, 86],
                     
                   'Col_3': [13, 73, 82, 58, 52,
                             87, 26, 5, 56],
                   'Col_4': [44, 75, 26, 15, 15,
                             14, 54, 25, 24]})
  
# create the time series plot
sns.lineplot(x = "Date", y = "Col_1", data = df)
sns.lineplot(x = "Date", y = "Col_2", data = df)
plt.ylabel("Col_1 and Col_2")
plt.xticks(rotation = 25)

Producción :

Ejemplo 3: Gráfica de serie temporal múltiple con columnas múltiples

Python3

# importing packages
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
  
# creating data
df = pd.DataFrame({'Date': ['2019-10-01', '2019-11-01', 
                            '2019-12-01','2020-01-01', 
                            '2020-02-01', '2020-03-01',
                            '2020-04-01', '2020-05-01', 
                            '2020-06-01'],
                     
                   'Col_1': [34, 43, 14, 15, 15,
                             14, 31, 25, 62],
                     
                   'Col_2': [52, 66, 78, 15, 15,
                             5, 25, 25, 86],
                     
                   'Col_3': [13, 73, 82, 58, 52,
                             87, 26, 5, 56],
                   'Col_4': [44, 75, 26, 15, 15,
                             14, 54, 25, 24]})
# create the time series subplots
fig,ax =  plt.subplots( 2, 2,
                       figsize = ( 10, 8))
  
sns.lineplot( x = "Date", y = "Col_1", 
             color = 'r', data = df, 
             ax = ax[0][0])
  
ax[0][0].tick_params(labelrotation = 25)
sns.lineplot( x = "Date", y = "Col_2", 
             color = 'g', data = df,
             ax = ax[0][1])
  
ax[0][1].tick_params(labelrotation = 25)
sns.lineplot(x = "Date", y = "Col_3", 
             color = 'b', data = df,
             ax = ax[1][0])
  
ax[1][0].tick_params(labelrotation = 25)
  
sns.lineplot(x = "Date", y = "Col_4", 
             color = 'y', data = df, 
             ax = ax[1][1])
  
ax[1][1].tick_params(labelrotation = 25)
fig.tight_layout(pad = 1.2)

Producción :

Publicación traducida automáticamente

Artículo escrito por deepanshu_rustagi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *