Considera los siguientes datos a modo de ejemplo:
import numpy as np
# Semilla
rng = np.random.RandomState(3)
# Simulación de datos
x = np.arange(1, 13)
y = np.cumsum(rng.normal(0, 1, size = 12)) + 10
Un gráfico de dispersión conectado es un gráfico de líneas donde los puntos individuales también se marcan, lo que es útil para mostrar tanto la tendencia como las observaciones exactas, sobre todo cuando hay relativamente pocas. Matplotlib no necesita una función específica para ello: basta con pasar marker a la función plot habitual.
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot(x, y, marker = "o")
# plt.show()

Forma y tamaño de los marcadores
Personaliza los marcadores igual que en un gráfico de dispersión normal, con markersize y cualquiera de las formas de marcador de matplotlib.
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot(x, y, marker = "D", markersize = 8)
# plt.show()

Color de la línea y los marcadores
Usa color para la línea y markerfacecolor / markeredgecolor para personalizar los marcadores de forma independiente.
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot(x, y, marker = "o", color = "#4C72B0",
markerfacecolor = "white", markeredgewidth = 2)
# plt.show()

Estilo de línea
Cambia el estilo de línea con linestyle, por ejemplo a una línea discontinua.
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot(x, y, marker = "o", linestyle = "--")
# plt.show()

Superpón una segunda llamada a scatter sobre un punto concreto (por ejemplo el máximo) para resaltarlo con otro color y tamaño.
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots()
ax.plot(x, y, marker = "o")
i = np.argmax(y)
ax.scatter(x[i], y[i], color = "#C44E52", s = 100, zorder = 3)
# plt.show()

También te puede interesar