Los gráficos de líneas son el tipo de gráfico por defecto del método plot de pandas. Son la mejor opción para representar series temporales, ya que el índice (por ejemplo, un índice de fechas) se utiliza para el eje X.
Llama a plot (o a plot.line) sobre una Series para dibujar una sola línea.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
rng = np.random.default_rng(11)
returns = rng.normal(0.001, 0.02, (250, 3))
df = pd.DataFrame(100 * np.exp(returns.cumsum(axis = 0)),
columns = ["Alpha", "Beta", "Gamma"],
index = pd.bdate_range("2025-01-01", periods = 250))
df["Alpha"].plot()
# plt.show()

Cuando llamas a plot sobre un data frame cada columna numérica se dibuja como una línea diferente y se agrega una leyenda automáticamente.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
rng = np.random.default_rng(11)
returns = rng.normal(0.001, 0.02, (250, 3))
df = pd.DataFrame(100 * np.exp(returns.cumsum(axis = 0)),
columns = ["Alpha", "Beta", "Gamma"],
index = pd.bdate_range("2025-01-01", periods = 250))
df.plot.line()
# plt.show()

Elegir las columnas
Selecciona las columnas que quieres representar con y, o indexa el data frame antes de representarlo.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
rng = np.random.default_rng(11)
returns = rng.normal(0.001, 0.02, (250, 3))
df = pd.DataFrame(100 * np.exp(returns.cumsum(axis = 0)),
columns = ["Alpha", "Beta", "Gamma"],
index = pd.bdate_range("2025-01-01", periods = 250))
df.plot(y = ["Alpha", "Gamma"])
# plt.show()

Utiliza color para establecer los colores, style para pasar una cadena de formato para cada línea (color, marcador y tipo de línea) y linewidth para cambiar el grosor.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
rng = np.random.default_rng(11)
returns = rng.normal(0.001, 0.02, (250, 3))
df = pd.DataFrame(100 * np.exp(returns.cumsum(axis = 0)),
columns = ["Alpha", "Beta", "Gamma"],
index = pd.bdate_range("2025-01-01", periods = 250))
df.plot(style = ["-", "--", ":"],
color = ["#264653", "#E76F51", "#2A9D8F"], linewidth = 2)
# plt.show()

Marcadores
Agrega marcadores con el argumento marker o dentro de la cadena de formato, por ejemplo "o-".
import pandas as pd
import matplotlib.pyplot as plt
s = pd.Series([3, 5, 4, 7, 6, 8], index = [2020, 2021, 2022, 2023, 2024, 2025])
s.plot(marker = "o", markersize = 8)
# plt.show()

Pasa los ejes que devuelve la primera llamada a plot al argumento ax de la segunda para dibujar ambas líneas en el mismo gráfico. Es útil para agregar una media móvil calculada con rolling.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
rng = np.random.default_rng(11)
returns = rng.normal(0.001, 0.02, (250, 3))
df = pd.DataFrame(100 * np.exp(returns.cumsum(axis = 0)),
columns = ["Alpha", "Beta", "Gamma"],
index = pd.bdate_range("2025-01-01", periods = 250))
ax = df["Alpha"].plot(alpha = 0.5, label = "Alpha")
df["Alpha"].rolling(20).mean().plot(ax = ax, linewidth = 2, label = "Media móvil")
ax.legend()
# plt.show()

logy = True utiliza una escala logarítmica en el eje Y y subplots = True dibuja cada línea en un subplot diferente.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
rng = np.random.default_rng(11)
returns = rng.normal(0.001, 0.02, (250, 3))
df = pd.DataFrame(100 * np.exp(returns.cumsum(axis = 0)),
columns = ["Alpha", "Beta", "Gamma"],
index = pd.bdate_range("2025-01-01", periods = 250))
df.plot(subplots = True, sharex = True)
# plt.show()

Consulta la guía sobre gráficos con pandas para el resto de argumentos o aprende a personalizar el eje de fechas con matplotlib.
También te puede interesar