Matplotlib 밀도 플롯
Suraj Joshi
2023년1월30일
-
scipy.stats
모듈에서gaussian_kde()
메서드를 사용하여 밀도 플롯 생성 -
seaborn
패키지에서kdeplot()
메서드를 사용하여 밀도 플롯 생성 -
seaborn
패키지에서distplot()
메서드를 사용하여 밀도 플롯 생성 -
pandas.DataFrame.plot()
메서드에서kind='density'
를 설정하여 밀도 플롯 생성
Python을 사용하여 밀도 플롯을 생성하려면 먼저scipy.stats
모듈의gaussian_kde()
메서드를 사용하여 주어진 데이터에서 밀도 함수를 추정합니다. 그런 다음 밀도 함수를 플로팅하여 밀도 플롯을 생성합니다. 또는seaborn
패키지의kdeplot()
을 사용하거나pandas.DataFrame.plot()
메서드에서kind='density'
를 설정하여 밀도 플롯을 생성 할 수도 있습니다.
scipy.stats
모듈에서gaussian_kde()
메서드를 사용하여 밀도 플롯 생성
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()
출력:
여기에서 먼저gaussian_kde()
메서드를 사용하여 주어진 데이터에 대한 밀도 함수를 추정합니다. 그런 다음plot()
메서드를 사용하여-2
에서10
까지의 값에 대한 함수를 플로팅합니다.
생성 된 밀도 플롯은gaussian_kde
함수가 대역폭을 자동으로 설정하기 때문에 충분히 정확하지 않습니다. 대역폭을 설정하기 위해gaussian_kde
클래스의covariance_factor
함수를 사용할 수 있습니다. 그런 다음_compute_covariance
메서드를 호출하여 정확한 플롯을 생성하기 위해 모든 요인을 올바르게 계산합니다.
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()
출력:
seaborn
패키지에서kdeplot()
메서드를 사용하여 밀도 플롯 생성
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()
출력:
이런 식으로 단순히 데이터를kdeplot()
메서드에 전달하여 밀도 플롯을 생성 할 수 있습니다.
seaborn
패키지에서distplot()
메서드를 사용하여 밀도 플롯 생성
또한seaborn
패키지의distplot()
메서드를 사용하여hist=False
를 설정하여 밀도 플롯을 생성 할 수 있습니다.
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()
출력:
pandas.DataFrame.plot()
메서드에서kind='density'
를 설정하여 밀도 플롯 생성
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()
출력:
작가: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn