Thêm phân phối chuẩn vào biểu đồ 2D sơ sinh
Nov 27 2020
Có thể lấy biểu đồ từ sơ sinh và thêm phân phối chuẩn không?
Giả sử tôi có một cái gì đó giống như biểu đồ phân tán này và biểu đồ từ tài liệu.
import seaborn as sns
penguins = sns.load_dataset("penguins")
sns.jointplot(data=penguins, x="bill_length_mm", y="bill_depth_mm");
plt.savefig('deletethis.png', bbox_inches='tight')
Tôi có thể xếp chồng phân phối ở các bên như hình dưới đây không?
import matplotlib.pyplot as plt
import numpy as np
from scipy.stats import norm
x = np.random.normal(size=100000)
# Plot histogram in one-dimension
plt.hist(x,bins=80,density=True)
xvals = np.arange(-4,4,0.01)
plt.plot(xvals, norm.pdf(xvals),label='$N(0,1)$')
plt.legend();
Trả lời
2 RuthgerRighart Nov 27 2020 at 21:40
Phần sau cung cấp Ước tính mật độ hạt nhân hiển thị phân phối (và nếu nó là bình thường):
g = sns.JointGrid(data=penguins, x="bill_length_mm", y="bill_depth_mm")
g.plot_joint(sns.scatterplot, s=100, alpha=.5)
g.plot_marginals(sns.histplot, kde=True)
Sau đây chồng lên một phân phối chuẩn trên biểu đồ theo các trục.
import seaborn as sns
import numpy as np
import pandas as pd
from scipy.stats import norm
df1 = penguins.loc[:,["bill_length_mm", "bill_depth_mm"]]
axs = sns.jointplot("bill_length_mm", "bill_depth_mm", data=df1)
axs.ax_joint.scatter("bill_length_mm", "bill_depth_mm", data=df1, c='r', marker='x')
axs.ax_marg_x.cla()
axs.ax_marg_y.cla()
sns.distplot(df1.bill_length_mm, ax=axs.ax_marg_x, fit=norm)
sns.distplot(df1.bill_depth_mm, ax=axs.ax_marg_y, vertical=True, fit=norm)