Slope Graph
Slope Graph
Qué es
Dos columnas de puntos conectados por líneas diagonales. Compara cómo cambia el ranking o valor de múltiples ítems entre exactamente dos momentos o condiciones.
Para qué sirve
Para mostrar cómo cambian las posiciones relativas entre dos períodos de tiempo o dos condiciones. Perfecto para comunicar quién sube y quién baja.
Cómo leerlo
Anatomía
El primer ejemplo bien documentado de este formato es una tabla-gráfico de la segunda mitad del siglo XX que ranqueaba países por un indicador económico en dos momentos distintos, con los nombres espaciados en proporción al valor exacto de cada uno. El nombre técnico del formato se acuñó bastante después de que empezara a usarse —una brecha común en la historia de estos gráficos, donde la idea suele circular mucho antes que su etiqueta. Una versión con más de dos columnas de tiempo, con las líneas cruzándose libremente entre varios rankings, puede considerarse una extensión directa del mismo principio, solo que con más puntos de comparación en la secuencia. Los nombres a cada lado se ubican a la altura exacta de su valor, no en una lista pareja, así que el ranking se lee directamente en la posición vertical de cada etiqueta.
Por qué funciona
Fundamento perceptivo
La pendiente de cada línea comunica tanto la dirección como la magnitud del cambio. Los cruces de líneas muestran inversiones de ranking de forma inmediata.
Errores comunes
Solo funciona con dos momentos
Un slope graph compara exactamente dos puntos en el tiempo por categoría, conectados por una línea recta cuya pendiente muestra la dirección y magnitud del cambio. Para tres o más momentos temporales, esa misma lógica de líneas conectando puntos se convierte en un gráfico de líneas normal, no en un slope graph.
Demasiadas líneas cruzándose
Con más de 10 o 15 categorías, las líneas que conectan el valor inicial con el final empiezan a cruzarse entre sí con tanta frecuencia que seguir una categoría específica de un extremo al otro se vuelve difícil. Resaltar una o dos líneas de interés en color, dejando el resto en gris tenue de fondo, ayuda a que la comparación relevante no se pierda entre el resto.
Etiquetas de ambos extremos amontonadas
Cuando varias categorías tienen valores muy parecidos en el mismo extremo (inicial o final), sus etiquetas de texto se apilan una encima de otra y se vuelven ilegibles. Un algoritmo simple de separación vertical de etiquetas —que las empuje lo mínimo necesario para no superponerse— resuelve la mayoría de estos casos sin alterar la posición real de los puntos.
Dónde se usa
Contextos de aplicación

Cambio de posiciones entre dos mediciones
Quién subió y quién bajó entre la primera y la segunda medición.

Variación de participación de mercado
La pendiente de cada línea muestra quién ganó y quién perdió terreno.

Cambio en resultados de encuestas
Cada opción conecta su valor inicial con el final: la inclinación es la historia.
Cómo construirlo
El mismo gráfico, en 11 librerías open source
Cada librería resuelve las mismas decisiones de diseño, como la escala, el espaciado entre barras o la inserción de la etiqueta de valor, de un modo distinto. Algunas las automatizan; otras las dejan explícitas en el código, a criterio de quien lo escribe. Comparar once implementaciones con los mismos datos y el mismo color de marca aísla esa diferencia, que de otro modo queda oculta detrás de estilos visuales distintos.
Sin función "slope": dos puntos conectados vía plot(), con las etiquetas puestas a mano junto a cada extremo con ax.text() —el posicionamiento es responsabilidad de quien escribe el código, no de la librería.
import matplotlib.pyplot as plt
series = [
{"label": "Mujeres", "start": 9.4, "end": 8.5, "color": "#760D3E"},
{"label": "Hombres", "start": 7.1, "end": 7.7, "color": "#D2601F"},
{"label": "Total país", "start": 8.1, "end": 8.0, "color": "#9B928C"},
]
# Sin funcion "slope": dos puntos conectados via plot(), con las
# etiquetas puestas a mano junto a cada extremo (ax.text()).
fig, ax = plt.subplots(figsize=(6.5, 4))
for s in series:
ax.plot([0, 1], [s["start"], s["end"]], color=s["color"], linewidth=2.5, marker="o")
ax.text(-0.03, s["start"], f"{s['label']} {s['start']}%", ha="right", va="center", color=s["color"])
ax.text(1.03, s["end"], f"{s['end']}%", ha="left", va="center", color=s["color"])
ax.set_xticks([0, 1]); ax.set_xticklabels(["Oct-dic 2024", "Oct-dic 2025"])
ax.set_yticks([])
plt.show()Herramientas para construirlo
No-code, desktop y plataformas web, con su licencia visible, abierta o comercial.
Términos relacionados
Con datos reales
Ejemplos de uso.
La brecha de género en el desempleo se achica
Tasa de desocupación por sexo, trimestre oct-dic 2024 vs oct-dic 2025.
Fuente: INE, Boletín Estadístico Empleo Trimestral N°327 (ENE)
Gráficos relacionados