如何在循环中获得seaborn的distplot的线拟合数据



我试图在for循环中获取seaborn中distplot的行数据。但当我执行这个代码时,它会打印相同的值,即使列表X的所有元素都不同。请告诉我为什么会发生这种情况

import numpy as np
import seaborn as sns 
import matplotlib.pyplot as plt 
x1 = np.random.normal(10,3,size=100)
x2 = np.random.normal(8,2,size=100)
x3 = np.random.normal(7,2,size=100)
x4 = np.random.normal(11,5,size=100)
X = [x1, x2, x3, x4]
for i in X:
dist_data_1 = sns.distplot(i).get_lines()[0].get_data()
print(dist_data_1)

您将在同一轴上绘制所有分布,因此在每次迭代时都会添加新行。但是,您总是从第一行(索引[0](检索数据。

相反,您应该从最后行(索引[-1](检索数据:

import numpy as np
import seaborn as sns 
import matplotlib.pyplot as plt 
x1 = np.random.normal(10,3,size=100)
x2 = np.random.normal(8,2,size=100)
x3 = np.random.normal(7,2,size=100)
x4 = np.random.normal(11,5,size=100)
X = [x1, x2, x3, x4]
for i in X:
dist_data_1 = sns.distplot(i).get_lines()[-1].get_data()
print(dist_data_1)

最新更新