# 总体分布概况(无界约翰逊分布等) y = Test_data['price'] sns.displot(y, kde=False, stat='density', height=6, aspect=2, rug=False, fit=st.johnsonsu) sns.displot(y, kde=False, stat='density', height=6, aspect=2, rug=False, fit=st.norm) sns.displot(y, kde=False, stat='density', height=6, aspect=2, rug=False, fit=st.lognorm) plt.show()。raise AttributeError( AttributeError: Rectangle.set() got an unexpected keyword argument 'fit'
时间: 2024-04-26 10:20:12 浏览: 34
这个错误是由于在使用 `sns.displot()` 函数时指定了 `fit` 参数,但这个参数在 `Rectangle` 对象中是没有定义的。解决方法是将 `fit` 参数从 `sns.displot()` 中移除,或者使用其他可接受 `fit` 参数的绘图函数。例如,您可以将 `sns.displot()` 替换为 `sns.histplot()`,然后在其中使用 `fit` 参数。
相关问题
# 总体分布概况(无界约翰逊分布等) y = Test_data['price'] sns.displot(y, kde=False, stat='density', height=6, aspect=2, rug=False, fit=st.johnsonsu) sns.displot(y, kde=False, stat='density', height=6, aspect=2, rug=False, fit=st.norm) sns.displot(y, kde=False, stat='density', height=6, aspect=2, rug=False, fit=st.lognorm) plt.show()。raise AttributeError( AttributeError: Rectangle.set() got an unexpected keyword argument 'fit'。给出修复后的代码
修复后的代码如下:
```python
import seaborn as sns
import matplotlib.pyplot as plt
import scipy.stats as st
y = Test_data['price']
sns.histplot(y, kde=False, stat='density', height=6, aspect=2, element='step', fill=False, alpha=0.5, bins=20, linewidth=2, color='b', label='Histogram')
sns.kdeplot(y, bw_adjust=1, color='r', label='Kernel Density Estimation')
sns.distplot(y, kde=False, fit=st.johnsonsu, color='g', label='Johnson SU')
sns.distplot(y, kde=False, fit=st.norm, color='m', label='Normal')
sns.distplot(y, kde=False, fit=st.lognorm, color='y', label='Log Normal')
plt.legend()
plt.show()
```
主要的改动是将 `sns.displot()` 替换为了 `sns.histplot()`,并且将 `fit` 参数移动到了 `sns.distplot()` 函数中。此外,我还添加了其他一些参数以改善图表的可读性和美观度。
sns.displot(y, kde=False, fit=st.johnsonsu, color='Red')
这是使用 seaborn 库中的 displot 函数绘制直方图的代码。其中,y 是要绘制直方图的数据,kde=False 表示不绘制核密度估计曲线,fit=st.johnsonsu 表示拟合 Johnson-SU 分布曲线,color='Red' 表示直方图的颜色为红色。Johnson-SU 分布是一种连续概率分布,常用于描述正态分布的偏斜和峰度。该函数可以帮助我们快速了解数据的分布情况。