I'm trying to recreate the figure attached to this message. I have a database of wave recordings at a specific location for 1 year. The goal is to create a probability of occurrence based on the wave period and significant wave height.

I managed to plot the contour, but unfortunately, I can't create a grid like the figure with the occurrence values and the corresponding colors on the colorbar. I tried using the annotate function, but it fills the figure with too many values. I am attaching what I obtained with this code:
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
# Chemin vers le fichier CSV
file = 'Candhis_03404_2022_arch.csv'
# Lecture du fichier CSV
donnees = pd.read_csv(file, delimiter=';')
donnees['H13D'] = donnees['H13D'].replace(999.999, pd.NA)
donnees['TH13D'] = donnees['TH13D'].replace(999.999, pd.NA)
donnees= donnees.dropna(subset=['H13D', 'TH13D'])
H13D=donnees['H13D']
TH13D=donnees['TH13D']
data_croisement=pd.crosstab(H13D,TH13D,margins=False)
total_occurences=np.sum(data_croisement.sum(axis=0))
prob_occurence_rows=(data_croisement/total_occurences)*100
H_values = np.sort(donnees['H13D'].unique())
T_values = np.sort(donnees['TH13D'].unique())
T, H = np.meshgrid(T_values, H_values)
# Création du contour plot
plt.figure(figsize=(10, 8))
contour = plt.contourf(T, H, prob_occurence_rows, cmap='coolwarm')
plt.colorbar(contour, label='Probabilité d\'occurences(%)')
plt.xlabel('Période significative (s)')
plt.ylabel('Hauteur significative (m)')
plt.title('Contour plot du tableau de contingence')
""" for i in range(len(H_values)):
for j in range(len(T_values)):
plt.annotate(f'{prob_occurence_rows.iloc[i, j]}', xy=(T_values[j], H_values[i]), ha='center', va='center') """
plt.grid(True)
plt.show()