En este tutorial te explicamos los tipos de líneas predeterminadas y líneas personalizadas que puedes usar para tus gráficas con matplotlib en Python.
Con matplotlib, puedes tener varios estilos de líneas en tus gráficas. Existen tipos de líneas predeterminadas que son muy sencillas de agregar, pero además puedes crear estilos de líneas personalizados para ser más original en tus gráficas.
Resumen.
Líneas predeterminadas.
Existen 4 estilos de líneas predeterminados en matplotlib.
plt.plot(x, y, "--")
“-”, Línea continua.
“–”, Línea discontinua.
“-.”, Línea de puntos y guiones.
“:”, Línea punteada
Líneas personalizadas.
Se debe usar el comando “linestyle” y darle la siguiente sintaxis:
(offset, (línea, espacio, línea, espacio,……) )
plt.plot(x, y, linestyle = (0, (5, 1, 2, 1)) )
El 1 es un el tamaño de un punto, puede ser línea o espacio.
Líneas predeterminadas matplotlib, python.
Existen 4 estilos de líneas predeterminados en matplotlib.
“-”, Línea continua.
“–”, Línea discontinua.
“-.”, Línea de puntos y guiones.
“:”, Línea punteada
Y los usaremos de la siguiente manera.
plt.plot(x, y, "--")
NOTA: Si no indicamos el tipo de línea, por default se grafica con línea continua.
Podemos agregar color, escribiendo la letra del color antes del tipo de línea. Y podemos agregar un marcador escribiendo el tipo de marcador antes del color.
Puedes ver este enlace donde te explicamos con más detalle.
Graficaremos todos los tipos de líneas así:
El código es el siguiente:
import matplotlib.pyplot as plt x = [0,1,2,3,4,5,6,7,8,9,10] y = [] z = [] w = [] v = [] for i in range(len(x)): y.append(x[i]**2) z.append(x[i]**2 - 10) w.append(x[i]**2 - 20) v.append(x[i]**2 - 30) plt.plot(x, y) plt.plot(x, z, "--") plt.plot(x, w, "-.") plt.plot(x, v, ":") plt.ylabel("Eje X") plt.xlabel("Eje Y") plt.show()
Esos son los tipos de línea predeterminados que podemos encontrar en matplotlib. Claro que podemos tener muchas más variantes si elegimos los colores y agregamos marcadores, pero eso ya es otro tema.
Podemos ver que matplotlib, automáticamente le da un color diferente a cada línea.
Ancho de línea matplotlib, python.
Para cambiar el ancho de las líneas usamos el comando “linewidth”
plt.plot(x, y, linewidth=2)
El número indica el ancho que tendrá la línea. Con esta opción podremos diferencias una línea de otra cuando sean del mismo color. O bien para ver mejor las líneas.
Líneas personalizadas en matplotlib, Python.
Podemos crear nuestros propios estilos de línea en matplotlib. Ya que existe un código con el que podemos crear la línea como la necesitemos.
Para agregar un estilo de línea personalizado en matplotlib, es necesario usar el comando “linestyle” y darle un valor con la siguiente sintaxis.
(offset, (secuencia separada por comas) )
(offset, (línea, espacio, línea, espacio,……) )
El Offset.
Indica el desfase de la línea. Al comparar una línea recta con otra teniendo diferente offset es cuando se ve el desfase. Inician distinto pero la secuencia es la misma. Generalmente este valor es 0.
Secuencia separada pro comas.
- Básicamente elegimos la secuencia que se repetirá. El primer valor es una línea, el segundo es un espacio, el tercero es línea, el cuarto es un espacio y así sucesivamente.
- Los números indican el lardo de la línea o espacio. El 1 es el tamaño de un punto, el 2 es una línea o espacio con 2 puntos de largo y así sucesivamente.
- La secuencia que hagamos se va a repetir, en la línea.
Por ejemplo:
Una línea punteada es la siguiente: (0, (1, 1))
Para una línea punteada con un espacio entre puntos grande es: (0, (1, 8))
En caso de una línea con punto (1), espacio (2), guion (5), espacio grande (5) es: (0, (1, 2, 5, 5))
Línea con guion (5) y espacio del tamaño de un punto (1) es: (0, (5, 1))
Una línea con punto dos guiones y un punto: (0, (1, 2, 5, 2, 5, 2, 1, 2))
El código es el siguiente:
import matplotlib.pyplot as plt x = [0,10] y = [4,4] z = [3,3] w = [2,2] v = [1,1] u = [0,0] plt.plot(x, y, linestyle=(0, (1, 1)), linewidth=2, color="r") plt.plot(x, z, linestyle=(0, (1, 8)), linewidth=3, color="k") plt.plot(x, w, linestyle=(0, (1, 2, 5, 5)), linewidth=2, color="b") plt.plot(x, v, linestyle=(0, (5, 1)), linewidth=2, color="g") plt.plot(x, u, linestyle=(0, (1, 2, 5, 2, 5, 2, 1, 2)), linewidth=2, color="k") plt.ylabel("Eje X") plt.xlabel("Eje Y") plt.show()
En el código anterior agregamos un ancho de línea con “linewidth” y el color de la línea con “color”, para que se vean con más claridad los tipos de línea.
Puedes visitar la página oficial de matplotlib para más información.
Para más tutoriales de Python y matplotlib, ve a la sección de matplotlib.