首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不同的地块中绘制多个熊猫自相关图

在不同的地块中绘制多个熊猫自相关图
EN

Stack Overflow用户
提问于 2021-02-10 04:19:45
回答 1查看 213关注 0票数 1

我的问题在某种程度上与this one有关。我有一个Pandas DataFrame,我想单独绘制value的自相关函数,category中的每一项。下面是我尝试过的,它将所有的自相关函数绘制在同一张图上。如何分别打印它们并控制打印大小?

代码语言:javascript
复制
# Import libraries
import pandas as pd
from pandas.plotting import autocorrelation_plot

# Create DataFrame
df = pd.DataFrame({
    'category': ['sav','sav','sav','sav','sav','check','check','check','check','check','cd','cd','cd','cd','cd'],
    'value': [1.2,1.3,1.5,1.7,1.8, 10,13,17,20,25, 7,8,8.5,9,9.3]
})

# Loop through for each item in category and plot autocorrelation function
for cat in df['category'].unique():
    s = df[df['category']==cat]['value']
    s = s.diff().iloc[1:] #First order difference to de-trend
    ax = autocorrelation_plot(s)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-10 04:30:49

一种简单的方法是在每次迭代后使用plt.show()强制呈现

代码语言:javascript
复制
# Loop through for each item in category and plot autocorrelation function
for cat in df['category'].unique():

    # create new figure, play with size
    plt.figure(figsize=(10,6))
    s = df[df['category']==cat]['value']
    s = s.diff().iloc[1:] #First order difference to de-trend
    ax = autocorrelation_plot(s)
    plt.show()  # here

此外,使用groupby还可以简化语法

代码语言:javascript
复制
for cat, data in df.groupby('category')['value']:
    plt.figure(figsize=(10,6))

    autocorrelation_plot(data.diff().iloc[1:])

    plt.title(cat)
    plt.show()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66126498

复制
相关文章

相似问题

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