Matplotlib-Dichte-Plot

Suraj Joshi 30 Januar 2023
  1. Erzeugen des Dichtediagramms mit der Methode gaussian_kde() aus dem Modul scipy.stats
  2. Generieren der Dichtekurve mit der Methode kdeplot() aus dem Paket seaborn
  3. Generieren des Dichtediagramms mit der distplot() Methode aus dem seaborn-Paket
  4. Setzen Sie kind='density' in pandas.DataFrame.plot() Methode zur Erzeugung des Dichtediagramms
Matplotlib-Dichte-Plot

Um ein Dichtediagramm unter Verwendung von Python zu erzeugen, schätzen wir zunächst die Dichtefunktion aus den gegebenen Daten unter Verwendung der gaussian_kde() Methode aus dem scipy.stats Modul. Dann zeichnen wir die Dichtefunktion auf, um das Dichtediagramm zu erzeugen. Alternativ können wir auch kdeplot() aus dem Paket seaborn verwenden oder kind='density' in der Methode pandas.DataFrame.plot() setzen, um das Dichtediagramm zu erzeugen.

Erzeugen des Dichtediagramms mit der Methode gaussian_kde() aus dem Modul scipy.stats

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import kde

data = [2, 3, 3, 4, 2, 1, 5, 6, 4, 3, 3, 3, 6, 4, 5, 4, 3, 2]
density = kde.gaussian_kde(data)
x = np.linspace(-2, 10, 300)
y = density(x)

plt.plot(x, y)
plt.title("Density Plot of the data")
plt.show()

Ausgabe:

Erzeugen Sie den Dichteplot mit der gaussian_kde-Methode

Hier schätzen wir zunächst die Dichtefunktion für die gegebenen Daten mit der gaussian_kde() Methode. Dann zeichnen wir die Funktion für Werte im Bereich von -2 bis 10 mit der plot() Methode auf.

Das erzeugte Dichtediagramm ist nicht präzise genug, da die gaussian_kde-Funktion die Bandbreite automatisch einstellt. Um die Bandbreite einzustellen, können wir die Funktion covariance_factor der Klasse gaussian_kde verwenden. Wir rufen dann die _compute_covariance-Methode auf, so dass alle Faktoren korrekt berechnet werden, um die genaue Darstellung zu erzeugen.

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import kde

data = [2, 3, 3, 4, 2, 1, 5, 6, 4, 3, 3, 3, 6, 4, 5, 4, 3, 2]
prob_density = kde.gaussian_kde(data)
prob_density.covariance_factor = lambda: 0.25
prob_density._compute_covariance()

x = np.linspace(-2, 10, 300)
y = prob_density(x)

plt.plot(x, y)
plt.title("Density Plot of the data")
plt.show()

Ausgabe:

Generieren Sie mit der gaussian_kde-Methode ein präziseres Dichtediagramm

Generieren der Dichtekurve mit der Methode kdeplot() aus dem Paket seaborn

import matplotlib.pyplot as plt
import seaborn as sns

data = [2, 3, 3, 4, 2, 1, 5, 6, 4, 3, 3, 3, 6, 4, 5, 4, 3, 2]
sns.kdeplot(data, bw=0.25)
plt.show()

Ausgabe:

Generieren Sie den Dichteplot mit der kdeplot-Methode

Auf diese Weise können wir den Dichteplot erzeugen, indem wir die Daten einfach in die kdeplot() Methode übergeben.

Generieren des Dichtediagramms mit der distplot() Methode aus dem seaborn-Paket

Wir können auch die Methode distplot() aus dem Paket seaborn verwenden und hist=False setzen, um den Dichteplot zu erzeugen.

import matplotlib.pyplot as plt
import seaborn as sns

data = [2, 3, 3, 4, 2, 1, 5, 6, 4, 3, 3, 3, 6, 4, 5, 4, 3, 2]
sns.distplot(data, hist=False)
plt.show()

Ausgabe:

Erzeugen Sie den Dichteplot mit der distplot-Methode

Setzen Sie kind='density' in pandas.DataFrame.plot() Methode zur Erzeugung des Dichtediagramms

import pandas as pd
import matplotlib.pyplot as plt

data = [2, 3, 3, 4, 2, 1, 5, 6, 4, 3, 3, 3, 6, 4, 5, 4, 3, 2]
df = pd.DataFrame(data)
df.plot(kind="density")
plt.show()

Ausgabe:

Setzen Sie kind=density in pandas.DataFrame.plot, um das Dichtediagramm zu erzeugen

Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

Verwandter Artikel - Matplotlib Plot