Matplotlib Tutorial - Grafico a linee

Jinku Hu 13 maggio 2021
  1. Matplotlib Linea Lineare
  2. Matplotlib Linea curva
  3. Tipo di linea Matplotlib
Matplotlib Tutorial - Grafico a linee

Si parte dalla tracciatura del tipo di grafico di base - grafico a linee. Il plot potrebbe facilmente tracciare linee come Lineare o curva, ed anche avere diverse configurazioni come colori, larghezza, dimensione del marcatore, ecc.

Matplotlib Linea Lineare

# -*- 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()

Traccia la linea di y=2*x, dove x è nell’intervallo tra 0 e 9.

Grafico della linea di Matplotlib - Linea Linea Lineare

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

Traccia i dati di x e y con uno stile di linea di b - colore blu e - - linea continua.

Matplotlib Linea curva

# -*- 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 d’onda sinusoidale, e ha lo stile della linea come colore rosso - r e linea tratteggiata - --.

Grafico a linee matplotlib - Linea curva

Tipo di linea Matplotlib

Si può cambiare il tipo di linea come larghezza, colore e stile di linea con diversi argomenti di input nella funzione plt.plot().

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

Parametri

Nome Descritpion
x, y Le coordinate orizzontali / verticali dei punti dati
fmt Una stringa di formato, ad esempio b- per la linea solida blu.

****kwargs

Proprietà Descrizione
color o c qualsiasi colore matplotlib
figure un’istanza Figure
label oggetto
linestyle o ls [‘solid’ | ‘dashed’, ‘dashdot’, ‘dotted’ | (offset, on-off-dash-seq) | '-']
linewidth o lw larghezza della linea in punti
marker Uno stile di marcatore valido
markersize o ms float
xdata 1D array
ydata 1D array
zorder float

Colore della linea

Avete alcuni metodi per dare un nome al colore nell’argomento color.

Alias a lettera singola

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

Alias Colore
b blu
g verde
r rosso
c ciano
m magenta
y giallo
k nero
w bianco

Matplotlib Line Chart -Colore Lettera singola Alias

Html Hex String

Si potrebbe passare una stringa html hex valida al parametro color, come

color = "#f44265"

Tupla RGB

Si può anche specificare il colore usando una tupla R,G,B, dove R, G, B sono nell’intervallo di [0, 1] invece del normale intervallo di [0, 255].

Il colore rappresentato con la stringa html hex sopra ha il valore RGB di (0.9569, 0.2588, 0.3891).

color = (0.9569, 0.2588, 0.3891)

Stile linea

Matplotlib ha 4 stili di linea incorporati,

Stile di linea
- Grafico a linee Matplotlib - Stile a linee - ‘-’
-- Grafico a linee di Matplotlib - Stile a linee - ‘–’
: Grafico a linee di Matplotlib - Stile a linee - ‘:’
:- Grafico a linee di Matplotlib - Stile a linee - ‘-.’
# -*- 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()

Schema di linea Matplotlib - Stile linea

Larghezza della linea

Si può specificare la larghezza della linea con il parametro linewidth come in

linewidth = 2  # unit is points

o semplicemente usare la sua abbreviazione,

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()

Schema della linea Matplotlib - Larghezza della linea

Autore: 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