Tutorial de Matplotlib - Gráfico de líneas

Jinku Hu 30 enero 2023
  1. Línea lineal Matplotlib
  2. Línea curva Matplotlib
  3. Tipo de línea Matplotlib
Tutorial de Matplotlib - Gráfico de líneas

Empezamos trazando el tipo de gráfico básico - gráfico de líneas. El plot puede trazar fácilmente líneas como la línea lineal o la línea curva, y también tiene diferentes configuraciones como colores, ancho, tamaño de marcador, etc.

Línea lineal Matplotlib

# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 9, 10)
y = 2 * x
plt.plot(x, y, "b-")
plt.show()

Traza la línea de y=2*x, donde x está en el rango entre 0 y 9.

Gráfico de líneas Matplotlib - Línea lineal

plt.plot(x, y, "b-")

Traza los datos de x y y con un estilo de línea de b - color azul y - - línea sólida.

Línea curva Matplotlib

# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 4 * np.pi, 1000)
y = np.sin(x)

plt.plot(x, y, "r--")

plt.show()

Genera una forma de onda sinusoidal, y tiene el estilo de línea como color rojo - r y línea discontinua - --.

Gráfico de líneas Matplotlib - Línea curva

Tipo de línea Matplotlib

Puede cambiar el tipo de línea como ancho, color y estilo de línea con diferentes argumentos de entrada en la función plt.plot().

matplotlib.pyplot.plot(*args, **kwargs)

Parámetros

Nombre Descritpion
x, y Las coordenadas horizontales / verticales de los puntos de datos
fmt Una cadena de formato, por ejemplo, b- para la línea sólida azul.

**kwargs

Propiedad Descripción
color o c cualquier color matplotlib
figure una instancia Figure
label Objeto
linestyle o ls [‘solid’ | ‘dashed’, ‘dashdot’, ‘dotted’ | (offset, on-off-dash-seq) | '-']
linewidth o lw ancho de línea en puntos
marker Un estilo de marcador válido
markersize o ms float
xdata Matriz 1D
ydata Matriz 1D
zorder float

Color de la línea

Tienes algunos métodos para nombrar el color en el argumento color.

Alias de una sola letra

The basic built-in colors have the alias as below,

Alias Color
b Azul
g verde
r Rojo
c cyan
m magenta
y amarillo
k negro
w blanco

Tabla de líneas Matplotlib - Alias de letras individuales de color

Cadena de caracteres Html Hexagonal

Puedes pasar una cadena hexadecimal html válida al parámetro color, como

color = "#f44265"

Tupla RGB

También puede especificar el color usando una tupla R,G,B, donde los valores de R, G, B están en el rango de [0, 1] en lugar del rango normal de [0, 255].

El color representado con la cadena hexadecimal html de arriba tiene el valor RGB de (0.9569, 0.2588, 0.3891).

color = (0.9569, 0.2588, 0.3891)

Estilo de línea

Matplotlib tiene 4 estilos de línea incorporados,

Estilo de línea
- Gráfico de líneas Matplotlib - Line Style - ‘-’
-- Gráfico de Líneas Matplotlib - Estilo de Línea - ‘–’
: Gráfico de Líneas Matplotlib - Estilo de Línea - ‘:’
:- Gráfico de líneas Matplotlib - Estilo de línea - ‘-’
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 4 * np.pi, 1000)


for index, line_style in enumerate(["-", "--", ":", "-."]):
    y = np.sin(x - index * np.pi / 2)
    plt.plot(x, y, "k", linestyle=line_style, lw=2)

plt.title("Line Style")
plt.grid(True)

plt.show()

Gráfico de líneas Matplotlib - Estilo de líneas

Ancho de la línea

Puede especificar el ancho de línea con el parámetro linewidth como en

linewidth = 2  # unit is points

o simplemente usar su abreviatura,

lw = 2
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 20, 21)

for line_width in [0.5, 1, 2, 4, 8]:
    y = line_width * x
    plt.plot(x, y, "k", linewidth=line_width)

plt.title("Line Width")
plt.grid(True)

plt.show()

Gráfico de líneas Matplotlib - Ancho de línea

Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook