如何在for循环中获得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)


森林海
浏览 110回答 1
1回答

肥皂起泡泡

您正在同一轴上绘制所有分布,因此您在每次迭代时添加新线。但是,您始终从第一行(索引)检索数据[0]。相反,您应该从最后一行(索引)检索数据[-1]:import numpy as npimport 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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python