प्रोफाइल हिस्टोग्राम (प्रत्येक बिन में प्रविष्टियों का माध्य) बनाने के लिए Seaborn के regplot का उपयोग x_bins पैरामीटर के साथ करें।
चरण
- फिगर आकार सेट करें और पैडिंग समायोजित करें
- NumPy से
xऔरyडेटा बिंदु बनाएं seaborn.regplotसे डेटा और लीनियर रिग्रेशन फिट प्लॉट करें।x_binsसे x वेरिएबल को डिस्क्रीट बिन्स में बिन करें।fit_reg=Trueसे x और y के बीच रिग्रेशन मॉडल प्लॉट करेंplt.show()से प्रदर्शित करें
उदाहरण
import numpy as np
import seaborn as sns
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
# डेटा: x समान वितरण, y = x² + शोर
x = np.random.uniform(-5, 5, 1000)
y = np.random.normal(x**2, np.abs(x) + 1)
# प्रोफाइल हिस्टोग्राम: x_bins=20 बिन्स में x को बिन करें, प्रत्येक बिन का माध्य दिखाएं
sns.regplot(x=x, y=y, x_bins=20, marker='o', fit_reg=True,
scatter_kws={'alpha': 0.5, 's': 20},
line_kws={'color': 'red', 'linewidth': 2})
plt.xlabel('X')
plt.ylabel('Y')
plt.title('प्रोफाइल हिस्टोग्राम: प्रत्येक x बिन में y का माध्य + रिग्रेशन लाइन')
plt.grid(True, alpha=0.3)
plt.show()
आउटपुट
स्कैटर प्लॉट (पारदर्शी बिंदु) जिस पर 20 x-बिन्स के माध्य मान (सर्कल मार्कर) और लाल रिग्रेशन लाइन ओवरले हैं।
प्रोफाइल हिस्टोग्राम क्या है?
सामान्य हिस्टोग्राम प्रत्येक बिन में गिनती दिखाता है। प्रोफाइल हिस्टोग्राम प्रत्येक बिन में y का माध्य (और वैकल्पिक रूप से मानक विचलन) दिखाता है। यह x के सापेक्ष y के औसत व्यवहार को दर्शाता है।
regplot पैरामीटर्स
| पैरामीटर | विवरण |
|---|---|
x_bins | x को बिन करने के लिए बिन्स की संख्या या बिन किनारे |
fit_reg | रिग्रेशन लाइन फिट करें (True/False) |
marker | बिन माध्य के लिए मार्कर शैली |
scatter_kws | स्कैटर पॉइंट्स के लिए kwargs |
line_kws | रिग्रेशन लाइन के लिए kwargs |
ci | कॉन्फिडेंस इंटरवल (डिफ़ॉल्ट 95%, None से अक्षम) |
वैकल्पिक: शुद्ध Matplotlib
import numpy as np
import matplotlib.pyplot as plt
x = np.random.uniform(-5, 5, 1000)
y = np.random.normal(x**2, np.abs(x) + 1)
bins = 20
bin_edges = np.linspace(x.min(), x.max(), bins + 1)
bin_centers = (bin_edges[:-1] + bin_edges[1:]) / 2
bin_means = [y[(x >= bin_edges[i]) & (x < bin_edges[i+1])].mean()
for i in range(bins)]
bin_stds = [y[(x >= bin_edges[i]) & (x < bin_edges[i+1])].std()
for i in range(bins)]
plt.errorbar(bin_centers, bin_means, yerr=bin_stds, fmt='o-', capsize=3)
plt.show()