我试图在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)