Como especificar cores diferentes para um intervalo de valor de ano específico em uma única figura? (Pitão)

Eu tenho um conjunto de dados de séries temporais, de 1992 a 2017. Posso definir uma cor para todos os pontos de dados, mas o que quero é definir a cor desejada para o intervalo de anos específico. Por exemplo; de 1992-1995 "azul", de 1995-2005 "vermelho" etc. Como podemos fazer isso?

Conjunto de dados possui 2 colunas; ano e valor.

import numpy as np
import pandas as pd
from scipy import stats
from sklearn import linear_model
from matplotlib import pyplot as plt
import pylab
import matplotlib.patches as mpatches
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.linear_model import LinearRegression

Atlantic = pd.read_csv('C:\\AtlanticEnd.csv', error_bad_lines=False)

X = Atlantic['year']

y = Atlantic['Poseidon']

plt.figure(figsize=(20,10))
plt.ylabel('Change in mean sea level [mm]', fontsize=20)
plt.xlabel('Years', fontsize=20)
plt.title('Atlantic Ocean - Mean Sea Level', fontsize=20)
colors = ["blue", "red", "green", "purple"]
texts = ["Poseidon", "Jason1", "Jason2", "Jason3"]
patches = [ plt.plot([],[], marker="o", ms=10, ls="", mec=None, color=colors[i], 
            label="{:s}".format(texts[i]) )[0]  for i in range(len(texts)) ]
plt.legend(handles=patches, loc='upper left', ncol=1, facecolor="grey", numpoints=1 )

plt.plot(X, y, 'ro', color='red')

slope, intercept, r_value, p_value, std_err = stats.linregress(X, y)
plt.plot(X, X*slope+intercept, 'b')

plt.axis([1992, 2018, -25, 80])

plt.grid(True)

plt.show()

def trendline(Atlantic, order=1):
    coeffs = np.polyfit(Atlantic.index.values, list(Atlantic), order)
    slope = coeffs[-2]
    return float(slope)

slope = trendline(y)
print(slope)

insira a descrição da imagem aqui

questionAnswers(2)

yourAnswerToTheQuestion