График matplotlib для проблемы l oop - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь построить данные временных рядов в matplotlib, используя для l oop. Цель состоит в том, чтобы динамически построить график ежедневных данных о ценах закрытия за n лет. Если я загружу данные за 7 лет, я получу 7 уникальных графиков. Я создал сводку дат начала и окончания для набора данных Annual_date_ranges (дата - это индекс). Я использую это для заполнения дат начала и окончания. Код, который я написал до сих пор, создает 7 графиков всех дневных данных вместо 7 уникальных графиков, по одному на каждый год. Любая помощь приветствуется. Заранее спасибо!

    yearly_date_ranges
              start        end
    Date                      
    2014 2014-04-01 2014-12-31
    2015 2015-01-01 2015-12-31
    2016 2016-01-01 2016-12-31
    2017 2017-01-01 2017-12-31
    2018 2018-01-01 2018-12-31
    2019 2019-01-01 2019-12-31
    2020 2020-01-01 2020-05-28

    import pandas as pd
    import matplotlib.pyplot as plt
    %matplotlib inline

    fig = plt.figure(figsize=(12,20))
    for i in range(len(yearly_date_ranges)):
        ax = fig.add_subplot(len(yearly_date_ranges),1,i + 1)       
        for row in yearly_date_ranges.itertuples(index=False):
            start = row.start
            end = row.end
            subset = data[start:end]        
            ax.plot(subset['Close'])

    plt.show()

Ответы [ 2 ]

0 голосов
/ 29 мая 2020

Это сработало! Спасибо за помощь

    fig, axes = plt.subplots(7,1, figsize=(12,20))

    years = data.index.year

    for ax, (k,d) in zip(axes.ravel(), data['Close'].groupby(years)):
        d.plot(x='Close', ax=ax)
0 голосов
/ 29 мая 2020

Динамически вы должны сделать что-то вроде этого:

fig, axes = plt.subplots(7,1, figsize=(12,20))

years = data.index.year

for ax, (k,d) in zip(axes.ravel(), data.groupby(years)):
    d.plot(y='Close', ax=ax)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...