Wie Sie die Größe der Bins in Matplotlib manuell einstellen
-
Bin-Grenzen als Parameter an die Funktion
hist()
- Berechnen Sie die Anzahl der Bins aus der gewünschten Breite
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()
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()
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()
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn