как добавить линию тренда на такой код в питоне
# NINO
import numpy as np
import xarray as xr
import matplotlib.pyplot as plt
import pandas as pd
noaa_nino3 = pd.read_csv('https://www.cpc.ncep.noaa.gov/data/indices/sstoi.indices',
sep=r" ", skipinitialspace=True,
parse_dates={'time': ['YR','MON']},
index_col='time')['NINO3']
noaa_nino3.head()
noaa_nino3.plot()
plt.grid(axis="y")
plt.grid(axis="x")
plt.show()
#####################################
Ответы (2 шт):
Автор решения: Dmitry Websmith
→ Ссылка
# NINO
import numpy as np
import xarray as xr
import matplotlib.pyplot as plt
import pandas as pd
noaa_nino3 = pd.read_csv('https://www.cpc.ncep.noaa.gov/data/indices/sstoi.indices',
sep=r" ", skipinitialspace=True,
parse_dates={'time': ['YR','MON']},
index_col='time')['NINO3']
noaa_nino3.head()
noaa_nino3.plot()
plt.grid(axis="y")
plt.grid(axis="x")
noaa_nino3_mavg20 = noaa_nino3.rolling(window=20, center=False).mean() # new
plt.plot(noaa_nino3_mavg20.index, noaa_nino3_mavg20.values) # new
plt.show()
Результат
Автор решения: CrazyElf
→ Ссылка
Пример с использованием Seaborn:
import numpy as np
import seaborn as sns
import pandas as pd
df = pd.DataFrame({'data': np.random.rand(100) + np.linspace(0, 1, 100)})
df.iloc[10] = 2
df.iloc[80] = 0
sns.regplot(x=df.index, y=df['data'])
Если у вас на графике есть выбросы, то линия тренда может нарисоваться не совсем правильно, тогда рекомендуется использовать параметр robust:
sns.regplot(x=df.index, y=df['data'], robust=True)
Картинки сейчас не могу приложить.
