सीबोर्न 2 डी हिस्टोग्राम में एक सामान्य वितरण जोड़ें

Nov 27 2020

क्या सीबर्न से हिस्टोग्राम लेना और एक सामान्य वितरण जोड़ना संभव है?

कहो कि मैं इस तितर बितर साजिश और प्रलेखन से हिस्टोग्राम की तरह कुछ था ।

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')

क्या मैं नीचे दी गई छवि की तरह पक्षों पर वितरण को सुपरिमेट कर सकता हूं?

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();

जवाब

2 RuthgerRighart Nov 27 2020 at 21:40

निम्नलिखित एक कर्नेल घनत्व अनुमान देता है जो वितरण प्रदर्शित करता है (और यदि यह सामान्य है):

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)

निम्नलिखित कुल्हाड़ियों में हिस्टोग्राम पर एक सामान्य वितरण का दावा करता है।

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)