Istogramma

Questo notebook mostra alcuni usi tipici di mp.histogram con il dataset di esempio incluso nella cartella examples.

Import

import matplotlib.pyplot as plt

import mespy as mp


df = mp.load_csv("data/test_misure.csv")
lunghezza = df["lunghezza_mm"]
sigma = df["sigma_mm"]

Uso base di histogram

L’unico argomento essenziale è il campione numerico su cui costruire l’istogramma. Tutti gli altri parametri servono per controllare stile, annotazioni e layout del grafico.

fig, ax = mp.histogram(lunghezza)
../_images/f60a4b5ba2499ea350939aaea51d4d0d9ebd6a3c2be192a97ab6eba4ec0a41da.png

Personalizzazione labels e legenda

Puoi cambiare etichetta dei dati, asse x, titolo, dimensione del titolo e precisione numerica della legenda senza modificare il resto della chiamata.

mp.histogram(
    lunghezza,
    label="Lunghezze",
    xlabel="lunghezza [mm]",
    title="Distribuzione delle lunghezze",
    title_fontsize=11,
    decimals=2,
)
(<Figure size 2400x1500 with 1 Axes>,
 <Axes: title={'center': 'Distribuzione delle lunghezze'}, xlabel='lunghezza [mm]', ylabel='Conteggi'>)
../_images/97b0f5d01c4a80a3f3f5ea10543fdaf8b80dd5a5fdbcdc3e89869ef04a7c7b4c.png

Personalizzazione bins

bins e bin_width sono alternativi: usa il primo per fissare direttamente numero o strategia dei bin, il secondo per imporre una larghezza costante. hist_range restringe il range usato per costruire l’istogramma.

fig, (ax_left, ax_right) = plt.subplots(
    1,
    2,
    figsize=(12, 4),
    dpi=140,
    constrained_layout=True,
)

mp.histogram(
    lunghezza,
    bins=6,
    xlabel="lunghezza [mm]",
    title="Numero fisso di bin",
    ax=ax_left,
)

mp.histogram(
    lunghezza,
    bin_width=0.025,
    hist_range=(25.15, 25.45),
    xlabel="lunghezza [mm]",
    title="bin_width con hist_range",
    ax=ax_right,
)

fig
../_images/773401a170b92b9a28a79bc03014facbab34577d0c333996edcbcff53d02eaa5.png ../_images/773401a170b92b9a28a79bc03014facbab34577d0c333996edcbcff53d02eaa5.png

Confronto su due assi

Quando passi ax, mespy disegna sul subplot esistente e ti permette di combinare piu distribuzioni nella stessa figura senza cambiare API.

fig, (ax_left, ax_right) = plt.subplots(
    1,
    2,
    figsize=(12, 4),
    dpi=140,
    constrained_layout=True,
)

mp.histogram(
    lunghezza,
    bins=8,
    xlabel="lunghezza [mm]",
    title="Distribuzione delle lunghezze",
    ax=ax_left,
)

mp.histogram(
    sigma,
    bins="sqrt",
    xlabel="sigma [mm]",
    title="Distribuzione delle incertezze",
    show_band=False,
    ax=ax_right,
)

fig
../_images/543bd4d89f8e71461e629a1df40245968e9314bf303f1357b5ed1f12d19a7d20.png ../_images/543bd4d89f8e71461e629a1df40245968e9314bf303f1357b5ed1f12d19a7d20.png

Pagine collegate