Python 如何获得seaborn in for loop distplot的直线拟合数据?

Python 如何获得seaborn in for loop distplot的直线拟合数据?,python,seaborn,Python,Seaborn,我试图在seaborn for循环中获得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.n

我试图在seaborn for循环中获得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]
):


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

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


因此,在这种情况下,
sns.distplot(i)
不会在每次迭代中创建新实例?
distplot()
会在当前轴上绘制,因此不会每次都创建新轴,它只是将新数据叠加到现有轴上(如果没有当前轴可用,matplotlib会在第一次迭代中自动创建新轴)1.有效!非常感谢。我一直忽略了轴的问题。@YongHwanKim不客气。如果该解决方案解决了问题,请考虑使用左边的复选标记来关闭答案关闭主题。在这种情况下请参见
sns.distplot(i)
不会在每次迭代中创建新实例?
distplot()
在当前轴上绘制,因此不会每次都创建新轴,它只是将新数据叠加到现有轴上(如果没有可用的轴,MatPultLB会自动在第一次迭代中创建一个新的轴)。它是有效的。谢谢。我一直忽略轴问题。@ YongHwanKim。欢迎您。如果解决方案解决了您的问题,请考虑使用左边的复选标记来关闭答案关闭主题。
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)