Crea diverse dimensioni di sottotrama in Matplotlib

Jinku Hu 15 febbraio 2024
  1. Metodo gridspec per impostare diverse dimensioni della sottotrama Matplotlib
  2. Metodo gridspec_kw
  3. Metodo subplot2grid per impostare diverse dimensioni di sottotrama Matplotlib
Crea diverse dimensioni di sottotrama in Matplotlib

Potremmo usare gridspec_kw, gridspec e subplot2grid per specificare diversi rapporti di sottotrame per creare diverse dimensioni di sottotrame in Matplotlib.

Matplotlib Diverse dimensioni sottotrama

Metodo gridspec per impostare diverse dimensioni della sottotrama Matplotlib

import matplotlib.pyplot as plt
from matplotlib import gridspec

fig = plt.figure()
spec = gridspec.GridSpec(ncols=2, nrows=1, width_ratios=[2, 1])

ax0 = fig.add_subplot(spec[0])
ax0.plot(range(5), range(5, 10))
ax1 = fig.add_subplot(spec[1])
ax1.plot(range(5), range(5, 10))

plt.show()

GridSpec dal modulo gridspec specifica la geometria della griglia delle sottotrame. Potremmo impostare il numero di righe, colonne e parametri di layout come il rapporto larghezza e altezza.

spec = gridspec.GridSpec(ncols=2, nrows=1, width_ratios=[2, 1])

Specifica che la figura ha due colonne e una riga e il rapporto di larghezza è 2:1.

ax0 = fig.add_subplot(spec[0])

L’oggetto ax0 prende il posto della posizione 0 nella geometria come definito sopra, oppure puoi usare spec[0, 0] per renderlo più chiaro.

Metodo gridspec_kw

import matplotlib.pyplot as plt

fig, ax = plt.subplots(
    2, 2, gridspec_kw={"width_ratios": [2, 1], "height_ratios": [1, 2]}
)

ax[0][0].plot(range(5), range(5, 10))
ax[0][1].plot(range(5), range(10, 5, -1))
ax[1][0].plot(range(5), range(5, 10))
ax[1][1].plot(range(5), range(10, 5, -1))

plt.show()

Matplotlib Diversa sottotrama Size_gridspec_kw

gridspec_kw è il dizionario con le parole chiave per il costruttore GridSpec per specificare gird delle sottotrame.

Il rapporto di larghezza è specificato come 2:1 e il rapporto di altezza è impostato su 1:2.

Metodo subplot2grid per impostare diverse dimensioni di sottotrama Matplotlib

subplot2grid consente alle sottotrame di prendere più celle nell’indicizzazione della griglia basata su 0.

def subplot2grid(shape,
                 loc,
                 rowspan=1,
                 colspan=1,
                 fig=None,
                 **kwargs):

shape è la forma della griglia e ha la sequenza di 2 numeri interi il cui primo elemento è il numero di righe e il secondo è il numero di colonne.

loc è la posizione in cui posizionare l’axis nella griglia. È anche la sequenza di 2 numeri interi la cui prima voce è il numero di riga e il secondo elemento è il numero di colonna.

rowspan e colspan sono il numero di righe o colonne che l’asse deve estendersi a destra (per rowspan) o in basso (per colspan).

Esempio di codifica funzionante:

import matplotlib.pyplot as plt

fig = plt.figure()

ax0 = plt.subplot2grid((1, 5), (0, 0), colspan=3)
ax1 = plt.subplot2grid((1, 5), (0, 3), colspan=2)

ax0.plot(range(5), range(5, 10))
ax1.plot(range(5), range(10, 5, -1))

plt.show()

Matplotlib Different Subplot Size_subplot2grid

ax0 = plt.subplot2grid((1, 5), (0, 0), colspan=3)
ax1 = plt.subplot2grid((1, 5), (0, 3), colspan=2)

La griglia ha la forma di (1, 5) con una riga e cinque colonne.

ax0 è posto nella cella (0, 0) e prende tre colonne, e ax1 è posto in (0, 3) e prende le altre due colonne.

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

Articolo correlato - Matplotlib Subplot