Pandas: traza múltiples tramas de datos de series temporales en una sola trama

En este artículo, veremos cómo trazar múltiples marcos de datos de series temporales en un solo gráfico. 

Si hay varias series temporales en un solo DataFrame, aún puede usar el método plot() para trazar un gráfico de líneas de todas las series temporales. Para trazar múltiples series de tiempo en un solo gráfico, primero debemos asegurarnos de que los índices de todos los marcos de datos estén alineados. Entonces, primero tomemos dos ejemplos en los que los índices están alineados y uno en el que tenemos que alinear los índices de todos los DataFrames antes de trazar.

Trazado de marcos de datos con el mismo índice de fecha y hora:

Paso 1: Importación de bibliotecas

Python3

# importing Libraries
  
# import pandas as pd
import pandas as pd
  
# importing matplotlib module
import matplotlib.pyplot as plt
plt.style.use('default')
  
# %matplotlib inline: only draw static
# images in the notebook
%matplotlib inline

Paso 2: Importación de datos

Graficaremos los precios abiertos de tres acciones de Tesla, Ford y motores generales. Puede descargar los datos desde aquí o desde la biblioteca de finanzas.

Archivo tesla:

Python3

# code
# importing Data
tesla = pd.read_csv('Tesla_Stock.csv',
                    index_col='Date', 
                    parse_dates=True)
tesla.head(10)

Producción:

Ford_stock:

Python3

# code
# importing data
ford = pd.read_csv('Ford_Stock.csv',
                   index_col='Date', 
                   parse_dates=True)
ford.head(10)

Producción:

GM_Stock:

Python3

# code
# importing data
gm = pd.read_csv('GM_Stock.csv',
                 index_col='Date',
                 parse_dates=True)
# printing 10 entries of the data
gm.head(10)

Producción:

Paso 3: ahora trazando los precios abiertos de las acciones

Python3

# code
# Visualizing The Open Price of all the stocks
  
# to set the plot size
plt.figure(figsize=(16, 8), dpi=150)
  
# using plot method to plot open prices.
# in plot method we set the label and color of the curve.
tesla['Open'].plot(label='Tesla', color='orange')
gm['Open'].plot(label='GM')
ford['Open'].plot(label='Ford')
  
# adding title to the plot
plt.title('Open Price Plot')
  
# adding Label to the x-axis
plt.xlabel('Years')
  
# adding legend to the curve
plt.legend()

Producción:

Trazado de marcos de datos con diferentes índices de fecha y hora:

En el segundo ejemplo, tomaremos los datos del precio de las acciones de Apple (AAPL) y Microsoft (MSFT) de diferentes períodos. Nuestra primera tarea aquí será volver a indexar cualquiera de los marcos de datos para alinearlos con el otro marco de datos y luego podemos trazarlos en un solo gráfico.

Paso 1: Importación de bibliotecas

Python3

# importing Libraries
  
# import pandas as pd
import pandas as pd
  
# importing matplotlib module
import matplotlib.pyplot as plt
plt.style.use('default')
  
# %matplotlib inline: only draw static images in the notebook
%matplotlib inline

Paso 2: Importación de datos

Python3

# code
aapl = pd.read_csv('aapl.csv',
                   index_col='Date',
                   parse_dates=True)
# printing 10 entries of the data
aapl.head(10)

Producción:

archivo msft:

Python3

# importing Data
msft = pd.read_csv('msft.csv', 
                   index_col='Date',
                   parse_dates=True)
# printing 10 entries of the data
msft.head(10)

Producción:

Como puede ver claramente, el índice DateTime de ambos DataFrames no es el mismo, por lo que primero debemos alinearlos. Cuando hagamos que el índice DateTime de msft sea el mismo que el de todos, entonces tendremos algunos valores faltantes para el período 2010-01-04 a 2012-01-02, antes de trazar Es muy importante eliminar los valores faltantes.

Python3

# Aligning index
aapl["MSFT"] = msft.MSFT
  
# removing Missing Values
aapl.dropna(inplace=True)
  
aapl.head(10)

Producción:

Hemos fusionado los dos DataFrames, en un solo DataFrame, ahora podemos simplemente trazarlo, 

Python3

# Visualizing The Price of the stocks
# to set the plot size
plt.figure(figsize=(16, 8), dpi=150)
  
# using .plot method to plot stock prices.
# we have passed colors as a list
aapl.plot(label='aapl', color=['orange', 'green'])
  
# adding title
plt.title('Price Plot')
  
# adding label to x-axis
plt.xlabel('Years')
  
# adding legend.
plt.legend()

Producción:

En algunos casos, no podemos darnos el lujo de perder datos, por lo que también podemos graficar sin eliminar los valores faltantes, la gráfica para el mismo se verá así:

Publicación traducida automáticamente

Artículo escrito por bistpratham 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 *