首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何访问autocorrelation_plot生成的数据?

如何访问autocorrelation_plot生成的数据?
EN

Stack Overflow用户
提问于 2020-07-16 15:36:34
回答 1查看 143关注 0票数 1

我用Pandas中的函数autocorrelation_plot绘制了自相关线,并希望访问它生成的数据。

我基本上是想找出数据集中的滞后点。

如何才能做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-16 16:09:15

下列措施应能发挥作用:

代码语言:javascript
复制
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

data = np.array(range(5)) * 10

ax = pd.plotting.autocorrelation_plot(data)

axAxesSubplot

代码语言:javascript
复制
<matplotlib.axes._subplots.AxesSubplot at 0x7f8b52758470>

,它有一个名为lines的属性

代码语言:javascript
复制
[<matplotlib.lines.Line2D at 0x7f8b51c30f28>,
 <matplotlib.lines.Line2D at 0x7f8b51c39390>,
 <matplotlib.lines.Line2D at 0x7f8b51c397b8>,
 <matplotlib.lines.Line2D at 0x7f8b51c39ba8>,
 <matplotlib.lines.Line2D at 0x7f8b51c39f98>,
 <matplotlib.lines.Line2D at 0x7f8b51c423c8>]

如果您现在循环这些:

代码语言:javascript
复制
for li in ax.lines:
    print(li.get_xydata())

你得到

代码语言:javascript
复制
[[0.         1.15194588]
 [1.         1.15194588]]
[[0.         0.87652254]
 [1.         0.87652254]]
[[0. 0.]
 [1. 0.]]
[[ 0.         -0.87652254]
 [ 1.         -0.87652254]]
[[ 0.         -1.15194588]
 [ 1.         -1.15194588]]
[[ 1.   0.4]
 [ 2.  -0.1]
 [ 3.  -0.4]
 [ 4.  -0.4]
 [ 5.   0. ]]

因此,我们可以看到:

代码语言:javascript
复制
xydata = ax.lines[-1].get_xydata()

array([[ 1. ,  0.4],
       [ 2. , -0.1],
       [ 3. , -0.4],
       [ 4. , -0.4],
       [ 5. ,  0. ]])

如果您想要单独的数据,您可以:

代码语言:javascript
复制
xdata = ax.lines[-1].get_xdata()
# array([1, 2, 3, 4, 5])

ydata = ax.lines[-1].get_ydata()
# array([ 0.4, -0.1, -0.4, -0.4,  0. ])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62938291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档