Python 如何获得seaborn in for loop distplot的直线拟合数据?
我试图在seaborn for循环中获得distplot的行数据。 但当我执行这段代码时,它会打印相同的值,即使列表X的所有元素都不同。 请让我知道为什么会发生这种情况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
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)