Wie Sie die Größe der Bins in Matplotlib manuell einstellen

Suraj Joshi 15 Februar 2024
  1. Bin-Grenzen als Parameter an die Funktion hist()
  2. Berechnen Sie die Anzahl der Bins aus der gewünschten Breite
Wie Sie die Größe der Bins in Matplotlib manuell einstellen

Um das Histogramm zu zeichnen, verwenden wir die Funktion hist2d(), wobei die Anzahl der Bins n als Parameter übergeben wird. Wir können die Größe der Bins festlegen, indem wir die erforderliche Anzahl von Bins berechnen, um die erforderliche Größe zu erhalten.

Bin-Grenzen als Parameter an die Funktion hist()

Syntax für hist Funktion:

hist(x,
     bins: NoneType=None,
     range: NoneType=None,
     density: NoneType=None,
     weights: NoneType=None,
     cumulative: bool=False,
     bottom: NoneType=None,
     histtype: str=builtins.str,
     align: str=builtins.str,
     orientation: str=builtins.str,
     rwidth: NoneType=None,
     log: bool=False,
     color: NoneType=None,
     label: NoneType=None,
     stacked: bool=False,
     normed: NoneType=None,
     data: NoneType=None,
     **kwargs)

Um die Größe der Bins in Matplotlib festzulegen, übergeben wir eine Liste mit den Bin-Grenzen anstelle der Anzahl der Bins als Parameter bin.

import numpy as np
import numpy.random as random
import matplotlib.pyplot as plt

data = np.random.random_sample(100) * 100.0
plt.hist(data, bins=[0, 10, 20, 30, 40, 50, 60, 80, 100])
plt.xlabel("Value")
plt.ylabel("Counts")
plt.title("Histogram Plot of Data")
plt.grid(True)
plt.show()

Legen Sie die Größe der Bins in der Matplotlib Übergabeliste als Parameter fest

Im obigen Beispiel stellen wir die Behältergrenzen und indirekt die Behälterbreite manuell ein. Wir könnten auch np.arange verwenden, um gleichmäßig verteilte Grenzen zu finden.

Um die Behälter in gleichem Abstand voneinander zu machen, können wir np.arange verwenden, um gleichmäßig verteilte Grenzen zu finden

import numpy as np
import numpy.random as random
import matplotlib.pyplot as plt

binwidth = 10
data = np.random.random_sample(100) * 100.0
plt.hist(data, bins=np.arange(min(data), max(data) + binwidth, binwidth))
plt.xlabel("Data")
plt.ylabel("Counts")
plt.title("Histogram Plot of Data")
plt.grid(True)
plt.show()

Gleichmäßig verteilte Bins in der Matplotlib-Übergabeliste als Parameter

Warnung
Der zweite Parameter von np.arange soll max(data) + binwidth sein, aber nicht max(data), weil das durch np.arange(start, stop, step) erzeugte Intervall start einschließt, aber stop ausschließt. Daher müssen wir das Intervall binwidth zu max(data) addieren, um den tatsächlichen Stopp als max(data) zu machen.

Berechnen Sie die Anzahl der Bins aus der gewünschten Breite

Um die Anzahl der Behälter zu ermitteln, berechnen wir die Obergrenze von (Maximalwert-Minimalwert) geteilt durch die gewünschte Behälterbreite.

import numpy as np
import matplotlib.pyplot as plt


def find_bins(observations, width):
    minimmum = np.min(observations)
    maximmum = np.max(observations)
    bound_min = -1.0 * (minimmum % width - minimmum)
    bound_max = maximmum - maximmum % width + width
    n = int((bound_max - bound_min) / width) + 1
    bins = np.linspace(bound_min, bound_max, n)
    return bins


data = np.random.random_sample(120) * 100
bins = find_bins(data, 10.0)
plt.hist(data, bins=bins)
plt.xlabel("Data")
plt.ylabel("Counts")
plt.title("Histogram Plot")
plt.show()

Anzahl der Behälter aus gegebener Breite finden

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Verwandter Artikel - Matplotlib Histogram