Member 14476982 Ответов: 1

Как построить линейный график на графике


Я новичок в программировании. Итак, я пытаюсь прочитать некоторые файлы из папки и построить временные ряды. Что нужно сделать, чтобы добавить y=intercept*x2 в график?
ДФ это:
                  values
time                    
2005-01-01           NaN
2005-01-02  3.610269e+15
2005-01-03           NaN
                 ...

2018-12-28           NaN
2018-12-29           NaN
2018-12-30           NaN
2018-12-31  2.833773e+15

[5092 rows x 1 columns]


Что я уже пробовал:

fnames = glob.glob('C:/Users/file/*.csv')
for filename in fnames:

    df= pd.read_csv(filename, skiprows=8, parse_dates =["time"], index_col ="time")
 
    df.columns=['values']
    df = df.replace(-1.267651e+30, np.NaN)
    monthly_resampled_data = df.resample('M').mean()
    monthly_resampled_counts = df.resample('M').count()
    
    yearly_resampled_data= monthly_resampled_data.resample('Y').mean()
    yearly_resamped_counts=monthly_resampled_data.resample('Y').count()
    x=yearly_resampled_data.index.year
    x.shape
    

    slope, intercept, r_value, p_value, std_err = stats.linregress(x, yearly_resampled_data.values[:,0])
    print("slope: %f    intercept: %f   r_value:%f   p_value:%f   std_err:%f" % (slope, intercept,r_value, p_value, std_err))
    print("R-squared: %f" % r_value**2)
    
    #how to plot linear in the graph???

    ax=monthly_resampled_data.plot(color='black')

    ax.set_ylim((0.1e16,1.2e16)) 
    plt.xlabel('Year')

 
    plt.show()
    plt.close()

Richard MacCutchan

Это скорее зависит от того, что вы хотите показать, но я бы предположил, что ось X будет датами, а ось Y-значениями. Однако построение более 5000 значений займет довольно много места. Вероятно, было бы быстрее загрузить файл в Excel и использовать встроенный графический инструмент.

1 Ответов

Рейтинг:
1

Gerry Schmitz

В 99% случаев "измерение времени" проходит вдоль оси x ("независимая" переменная), а другая ("зависимая" переменная)-вдоль оси y; в вашем случае это "числа".

В вашем случае вы, вероятно, отбросите записи "NAN".

Вам нужно будет "масштабировать" цифры (например, опуская показатель степени).

Как и в случае с $, вы составляете график в тысячах, миллионах и т. д., Чтобы получить график "выглядящий правильно", но все еще отражающий.

И как упоминал Ричард, вы, вероятно, разделите ось x на "четверти" или "годы", чтобы вместить все детали.


Member 14476982

Как мне это сделать?