Gráfico de serie temporal de Matplotlib
En este tutorial de Python Matplotlib, discutiremos el Gráfico de serie temporal de Matplotlib. Aquí cubriremos diferentes ejemplos relacionados con el gráfico de series de tiempo usando matplotlib. Y también cubriremos los siguientes temas:
Serie de tiempo de Matplotlib
Aquí primero, entenderemos qué es un gráfico de serie temporal y discutiremos por qué lo necesitamos en matplotlib.
¿Qué es la trama de serie temporal?
Los datos de series temporales son una colección de puntos de datos que se recopilaron durante un período de tiempo y están indexados en el tiempo. Estas observaciones se realizan a intervalos uniformemente espaciados a lo largo del tiempo. La visualización de datos juega un papel importante en el trazado de gráficos de series temporales.
Donde necesitamos Gráfico de serie temporal:
La señal de ECG, la señal de EEG, los datos del mercado de valores, los datos meteorológicos, etc., se indexan en el tiempo y se registran durante un período de tiempo. El campo de investigación para analizar estos datos y pronosticar observaciones futuras es mucho más amplio.
Pandas de trama de series temporales de Matplotlib
Aquí aprendemos a trazar un gráfico de serie temporal que se creará en pandas. Primero, tenemos que crear un conjunto de datos de muestra en pandas.
Lo siguiente es la sintaxis para crear DataFrame en Pandas:
pandas.DataFrame(data, index, columns, dtype, copy)
Veamos el código fuente para crear DataFrame:
# Import Library
import pandas as pd
# Defne Data
timeseries_data = {
'Date': ['2021-12-26', '2021-12-29',
'2021-12-27', '2021-12-30',
'2021-12-28', '2021-12-31' ],
'Washington': [42, 41, 41, 42, 42, 40],
'Canada' : [30, 30, 31, 30, 30, 30],
'California' : [51, 50, 50, 50, 50, 50]
}
# Create dataframe
dataframe = pd.DataFrame(timeseries_data,columns=['Date', 'Washington', 'Canada', 'California'])
# Changing the datatype
dataframe["Date"] = dataframe["Date"].astype("datetime64")
# Setting the Date as index
dataframe = dataframe.set_index("Date")
dataframe
Producción:
Código fuente para trazar los datos:
# Import Library
import matplotlib.pyplot as plt
# Plot
plt.plot(dataframe["Canada"], marker="o")
# Labelling
plt.xlabel("Date")
plt.ylabel("Temp in Faherenheit")
plt.title("Pandas Time Series Plot")
# Display
plt.show()
- En primer lugar, importar matplotlib.pyplot biblioteca.
- A continuación, trace la gráfica de la Canadá columna.
- Para agregar etiquetas en los ejes, usamos xetiqueta() y yetiqueta() función.
- Para agregar el título, usamos el título() función.
Producción:
![pandas de la trama de la serie temporal de matplotlib pandas de la trama de la serie temporal de matplotlib](https://pythonguia.com/wp-content/uploads/2022/10/matplotlib-time-series-plot-pandas.png)
Trama de serie temporal de pandas
Además, lea: Matplotlib fill_ between – Guía completa
Diagrama de dispersión de series de tiempo de Matplotlib
Ahora, aquí aprendemos a trazar gráficos de series de tiempo usando gráficos de dispersión en Matplotlib.
Ejemplo:
En este ejemplo, tomamos la creación anterior de DataFrame como datos.
# Import Library
import matplotlib.pyplot as plt
# Plot scatter
plt.scatter(dataframe.index, dataframe["Washington"])
# Labelling
plt.xlabel("Date")
plt.ylabel("Temp in Faherenheit")
# Auto space
plt.tight_layout()
# Display
plt.show()
Aquí dibujamos un diagrama de dispersión entre y Fecha y Temperatura de Washington.
![diagrama de dispersión de series de tiempo de matplotlib diagrama de dispersión de series de tiempo de matplotlib](https://pythonguia.com/wp-content/uploads/2022/10/matplotlib-time-series-scatter-plot.png)
Gráfico de dispersión
Gráfico de serie de tiempo múltiple de Matplotlib
Aquí aprenderemos a trazar múltiples series de tiempo en un solo gráfico usando matplotlib.
Ejemplo:
# Import Libraries
import matplotlib.pyplot as plt
import datetime
import numpy as np
import pandas as pd
# Create figure
fig = plt.figure(figsize=(12, 8))
# Define Data
df1 = pd.DataFrame({'date': np.array([datetime.datetime(2021,
12, i+1) for i in range(20)]),
'blogs_read': [4, 6, 5, 8, 15, 13, 18, 6, 5,
3, 15, 14, 19, 21, 15, 19, 25, 24, 16, 26]})
df2 = pd.DataFrame({'date': np.array([datetime.datetime(2021,
12, i+1)
for i in range(20)]),
'blogs_unread': [1, 1, 2, 3, 3, 3, 4, 3, 2,
3, 4, 7, 5, 3, 2, 4, 3, 6, 1, 2]})
# Plot time series
plt.plot(df1.date, df1.blogs_read, label="blogs_read",
linewidth=3)
plt.plot(df2.date, df2.blogs_unread, color="red",
label="blogs_unread", linewidth=3)
# Add title and labels
plt.title('Blogs by Date')
plt.xlabel('Date')
plt.ylabel('Blogs')
# Add legend
plt.legend()
# Auto space
plt.tight_layout()
# Display plot
plt.show()
- En primer lugar, importe las bibliotecas necesarias, como matplotlib.pyplot, fecha y hora, entumecido y pandas.
- A continuación, para aumentar el tamaño de la figura, utilice tamaño de higo() función.
- Para definir coordenadas de datos, creamos pandas Marco de datos.
- Para graficar la serie de tiempo, usamos gráfico() función.
- Para agregar el título a la trama, use título() función.
- Para agregar etiquetas en los ejes, usamos xetiqueta() y yetiqueta() función.
- Para agregar leyenda, use leyenda() función.
- Para mostrar el gráfico, utilice mostrar() función.
Diagrama de barras de serie temporal de Matplotlib
Aquí aprenderemos a graficar series de tiempo usando un gráfico de barras en Matplotlib.
Haga clic aquí para descargar los datos:
Ejemplo:
# Import Library
import pandas as pd
import matplotlib.pyplot as plt
# Read csv
data= pd.read_csv('Sales.csv')
# Convert data frame
df=pd.DataFrame(data)
# Initilaize list
X = list(df.iloc[:,0])
Y = list(df.iloc[:,1])
# Set figure
plt.figure(figsize=(15, 12))
# Bar Plot
plt.bar(X, Y)
# Setting Ticks
plt.tick_params(axis="x",labelsize=15,rotation=90)
plt.tight_layout()
# Display
plt.show()
- En primer lugar, importamos las bibliotecas necesarias, como matplotlib.pyploty pandas.
- A continuación, lea el archivo CSV.
- Después de esto, cree DataFrame a partir de un archivo CSV.
- Inicialice la lista para X e Y.
- Para trazar un gráfico de barras, usamos el bar() función.
- Para cambiar la configuración de ticks, usamos tick_params() función.
- Para establecer el espacio, usamos diseño_apretado() función.
![gráfico de barras de serie temporal de matplotlib gráfico de barras de serie temporal de matplotlib](https://pythonguia.com/wp-content/uploads/2022/10/matplotlib-time-series-bar-plot.png)
plt.bar()
Matplotlib traza series de tiempo eje x
Aquí aprenderemos a configurar el eje x de la gráfica de datos de series de tiempo en Matplotlib.
Veamos un ejemplo:
# Import Library
import matplotlib.pyplot as plt
from datetime import datetime, timedelta
# Define data
dates = [
datetime(2021, 9, 21),
datetime(2021, 9, 22),
datetime(2021, 9, 23),
datetime(2021, 9, 24),
datetime(2021, 9, 25),
datetime(2021, 9, 26),
datetime(2021, 9, 27),
]
y = [0, 1.8, 2, 3.5, 4, 5.6, 6]
# Plot
plt.plot_date(dates, y)
# Setting axes
plt.tight_layout()
plt.tick_params(axis="x", rotation=90)
# Display
plt.show()
- Importar bibliotecas matplotlib.pyplot y fecha y hora.
- Defina los ejes de datos x e y.
- Para graficar fechas, usamos plot_date() función.
- Para establecer la configuración de las marcas, usamos el tick_params() función.
![matplotlib trazar serie de tiempo x matplotlib trazar serie de tiempo eje x](https://pythonguia.com/wp-content/uploads/2022/10/matplotlib-plot-time-series-x-axis.png)
plt.plot_date()
Trama de serie de tiempo de Python seaborn
Aquí aprenderemos cómo crear un gráfico de series de tiempo con seaborn.
nacido en el mar es una excelente herramienta de visualización de Python para trazar imágenes estadísticas. Incluye atractivos estilos predeterminados y paletas de colores que hacen que los gráficos estadísticos sean más atractivos. Se basa en la versión más reciente del paquete matplotlib y está estrechamente integrado con las estructuras de datos de pandas.
Para descargar el conjunto de datos, haga clic en sobre el Archivo de ventas.CSV:
Veamos un ejemplo:
# Import Library
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
# Read csv
data= pd.read_csv('Sales.csv')
# Convert to dataframe
df=pd.DataFrame(data)
# Initilaize list
X = list(df.iloc[:,0])
Y = list(df.iloc[:,1])
# Set figure
plt.figure(figsize=(12,10))
# Seaborn
sns.lineplot(x=X, y=Y)
# Setting Ticks
plt.tick_params(axis="x",labelsize=15,rotation=90)
plt.tight_layout()
# Display
plt.show()
- en primer lugar importar matplotlib.pyplot, pandas y nacido en el mar bibliotecas
- A continuación, lea el archivo CSV usando leer_csv() función.
- Para convertir los datos en DataFrame, use Marco de datos() Función de los pandas.
- Para inicializar la lista, usamos iloc() Función de los pandas.
- Para establecer el tamaño de la figura, use tamaño de higo() método de figura.
- Para crear un gráfico de serie temporal con la biblioteca seaborn, usamos diagrama de línea () método.
- Para cambiar la configuración de las marcas, usamos tick_params() función.
- Para establecer el ajuste de la trama, utilice diseño_ajustado() función.
- Para mostrar el gráfico, utilice mostrar() función.
![trama de serie temporal de python nacido en el mar trama de serie temporal de python nacido en el mar](https://pythonguia.com/wp-content/uploads/2022/10/python-time-series-plot-seaborn.png)
sns.lineplot()
Matplotlib boxplot serie de tiempo
Aquí aprenderemos a trazar un gráfico de series de tiempo usando el diagrama de caja marino usando Matplotlib.
Ejemplo:
# Import libraries
import numpy as np
import pandas as pd
import seaborn
import matplotlib.pyplot as plt
# Define Data
data = pd.DataFrame(np.random.randn(100),
index=pd.date_range(start="2021-12-01",
periods=100, freq="H"))
data.groupby(lambda x: x.strftime("%Y-%m-
%d")).boxplot(subplots=False, figsize=(12,9))
# Display
plt.show()
- Importar entumecido, pandas, nacido en el mar y matplotlib.pyplot bibliotecas
- Crear marco de datos panda usando Marco de datos() función.
- Para definir los datos para el trazado, utilice aleatorio.randn() función y establecer el índice como fecha.
- Para graficar agrupar por fechas, use agrupar por() función.
- Para crear un gráfico de diagrama de caja, use diagrama de caja() función.
![matplotlib boxplot serie de tiempo matplotlib boxplot serie de tiempo](https://pythonguia.com/wp-content/uploads/2022/10/matplotlib-boxplot-time-series.png)
diagrama de caja()
Gráfico interactivo de series de tiempo de Python
Plotly es un módulo de visualización de datos de código abierto de Python que admite una variedad de gráficos, como gráficos de líneas, gráficos de dispersión, gráficos de barras, histogramas y gráficos de área. Plotly es una herramienta de trazado que utiliza javascript para crear gráficos interactivos.
Para instalar Plotly, use el siguiente comando de mención:
pip install plotly
Para descargar el conjunto de datos, haga clic en sobre el Archivo de ventas.CSV:
Veamos un ejemplo:
# Import Library
import pandas as pd
import plotly.express as px
import matplotlib.pyplot as plt
# Read csv
data= pd.read_csv('Sales.csv')
# Convert data frame
df=pd.DataFrame(data)
# Initilaize list
X = list(df.iloc[:,0])
Y = list(df.iloc[:,1])
# Set figure
plt.figure(figsize=(12,10))
# Plotly graph
plot = px.line(x=X, y=Y)
# Setting Ticks
plt.tick_params(axis="x",labelsize=15,rotation=90)
plt.tight_layout()
# Display
plot.show()
- Importe las bibliotecas necesarias, como pandas, plotly.expressy matplotlib.pyplot.
- Leer archivo CSV, usando leer_csv() función.
- Convierta un archivo CSV en un marco de datos, usando Marco de datos() función.
- Para inicializar la lista, usamos iloc() función.
- Para trazar un gráfico de línea de serie de tiempo interactivo, utilice línea() funcion de plotly.express módulo.
![trama interactiva de la serie temporal de python trama interactiva de la serie temporal de python](https://pythonguia.com/wp-content/uploads/2022/10/python-time-series-interactive-plot.gif)
Gráfica de serie temporal interactiva
Diagrama de barras múltiples de series temporales de Matplotlib
En esta sección, aprenderemos a trazar diagramas de series de tiempo utilizando gráficos de barras múltiples. Aquí trazamos el gráfico que muestra el número de nacimientos en un período específico.
Veamos un ejemplo:
# Import Libraries
import pandas as pd
import matplotlib.pyplot as plt
# Creating dataframe
df = pd.DataFrame({
'Dates':['2021-06-10', '2021-06-11',
'2021-06-12', '2021-06-13',
'2021-06-14', '2021-06-15'],
'Female': [200, 350, 150, 600, 500, 350],
'Male': [450, 400, 800, 250, 500, 900]
})
# Plotting graph
df.plot(x="Dates", y=["Female", "Male"], kind="bar")
# Show
plt.show()
Explicación:
- Importar matplotlib librería para la visualización de datos.
- A continuación, importe pandas biblioteca para crear el marco de datos.
- Luego crea un marco de datos en pandas usando Marco de datos() función.
- Para crear un gráfico de barras múltiples, usamos gráfico() método y definir su tipo a bar.
- Para visualizar la trama, usamos mostrar() función.
![diagrama de barra múltiple de series de tiempo de matplotlib diagrama de barra múltiple de series de tiempo de matplotlib](https://pythonguia.com/wp-content/uploads/2022/10/matplotlib-time-series-multiple-bar-plot.png)
df.plot(tipo=’barra’)
Matplotlib traza series de tiempo con espacios
Aprenderemos a trazar series de tiempo con espacios en esta sección usando matplotlib. Para empezar, veamos una ilustración de lo que brecha significa:
Digamos que tenemos un conjunto de datos en formato CSV, que tiene algunos de los perdido valores. Estos valores en blanco, o celdas en blanco, se sustituyen por Yaya valores. Como resultado, cuando visualizamos este tipo de conjunto de datos, obtenemos un gráfico con rupturas en lugar de líneas continuas.
Para descargar el conjunto de datos, haga clic en Max Temp USA Cities:
Para entender más claramente el concepto, veamos diferentes ejemplos:
- En primer lugar, hemos importado las bibliotecas necesarias, como pandas y matplotlib.pyplot.
- Después de esto, lea el archivo csv usando leer_csv() Función de los pandas.
- Para ver el conjunto de datos, imprímalo.
Código fuente:
# Import Libraries
import pandas as pd
import matplotlib.pyplot as plt
# Read CSV
data= pd.read_csv('Max Temp USA Cities.csv')
# Print
data
![matplotlib trazar series de tiempo con espacios matplotlib trazar series de tiempo con espacios](https://pythonguia.com/wp-content/uploads/2022/10/matplotlib-plot-time-series-with-gaps.png)
datos
- A continuación, convertimos el archivo CSV al marco de datos del panda, usando el Marco de datos() función.
- Si desea ver el marco de datos, imprímalo.
Código fuente:
# Convert data frame
df=pd.DataFrame(data)
# Print
df
![matplotlib trazar series de tiempo con marco de datos de brechas matplotlib trazar series de tiempo con marco de datos de brechas](https://pythonguia.com/wp-content/uploads/2022/10/matplotlib-plot-time-series-with-gaps-dataframe.png)
d.f.
- Inicialice la lista para seleccionar las filas y columnas por posición de pandas Dataframe usando iloc() función.
Código fuente:
# Initilaize list
dates = list(df.iloc[:,0])
city_1 = list(df.iloc[:,1])
city_2 = list(df.iloc[:,2])
city_3 = list(df.iloc[:,3])
city_4 = list(df.iloc[:,4])
- Ahora, establezca el tamaño de la figura usando tamaño de higo() función.
- Para establecer la rotación y el tamaño de la etiqueta del eje x, utilice tick_params() función.
- Para establecer las etiquetas en el eje x, utilice xetiqueta() función.
- Para establecer las etiquetas en el eje y, utilice yetiqueta() función.
Código fuente:
# Set Figure Size
plt.figure(figsize=(8,6))
# Setting Ticks
plt.tick_params(axis="x",labelsize=10,rotation=90)
# Labels
plt.xlabel("Dates")
plt.ylabel("Temp")
- Para trazar un gráfico de líneas sin espacios, use el gráfico() función y pasar las coordenadas de datos sin que falten valores.
- Para establecer un marcador, pase marcador como parámetro.
- Para visualizar el gráfico, utilice el mostrar() función.
Ejemplo #1 (Sin espacios)
# Plot
plt.plot(dates, city_4, marker="o")
# Display
plt.show()
![matplotlib trazar series de tiempo sin espacios matplotlib trazar series de tiempo sin espacios](https://pythonguia.com/wp-content/uploads/2022/10/matplotlib-plot-time-series-without-gaps.png)
sin huecos
Ejemplo #2 (Con espacios)
# Set figure
plt.figure(figsize=(8,6))
# Plot
plt.plot(dates,city_1, marker="o")
# Labels
plt.xlabel("Dates")
plt.ylabel("Temp")
# Setting Ticks
plt.tick_params(axis="x",labelsize=10,rotation=90)
# Display
plt.show()
![diagrama de series de tiempo de matplotlib con espacios diagrama de series de tiempo de matplotlib con espacios](https://pythonguia.com/wp-content/uploads/2022/10/matplotlib-time-series-plot-with-gaps.png)
con huecos
Ejemplo #3 (Con espacios)
Aquí trazamos un gráfico entre las fechas y la ciudad de Los Ángeles.
# Set figure
plt.figure(figsize=(8,6))
# Plot
plt.plot(dates,city_2, marker="o")
# Labels
plt.xlabel("Dates")
plt.ylabel("Temp")
# Setting Ticks
plt.tick_params(axis="x",labelsize=10,rotation=90)
# Display
plt.show()
![series de tiempo con lagunas en matplotlib serie ime con espacios en matplotlib](https://pythonguia.com/wp-content/uploads/2022/10/time-series-with-gaps-in-matplotlib.png)
plt.plot()
Ejemplo #4 (con espacios)
Aquí trazamos un gráfico entre las fechas y la ciudad de Filadelfia.
# Set figure
plt.figure(figsize=(8,6))
# Plot
plt.plot(dates,city_3, marker="o")
# Labels
plt.xlabel("Dates")
plt.ylabel("Temp")
# Setting Ticks
plt.tick_params(axis="x",labelsize=10,rotation=90)
# Display
plt.show()
![matplotlib trazar series de tiempo con lagunas matplotlib trazar series de tiempo con lagunas](https://pythonguia.com/wp-content/uploads/2022/10/matplotlib-plot-time-series-having-gaps.png)
plt.plot()
Ejemplo #5 (Con o Sin Espacio en una Parcela)
# Set figure
plt.figure(figsize=(8,6))
# Plot
plt.plot(dates,city_1, marker="o")
plt.plot(dates,city_4, marker="o")
# Labels
plt.xlabel("Dates")
plt.ylabel("Temp")
# Setting Ticks
plt.tick_params(axis="x",labelsize=10,rotation=90)
# Display
plt.show()
![series temporales de matplotlib con o sin espacios series temporales de matplotlib con o sin espacios](https://pythonguia.com/wp-content/uploads/2022/10/matplotlib-time-series-with-or-without-gaps.png)
Con o sin huecos