Я пытаюсь воссоздать рисунок, прикрепленный к этому сообщению. У меня есть база данных записей волн в определенном месте за 1 год. Цель состоит в том, чтобы создать вероятность возникновения на основе периода волны и значительной высоты волны. диаграмма рассеяния волн
Мне удалось построить контур, но, к сожалению, я не могу создать сетку, подобную рисунку, со значениями вхождений и соответствующими цветами на цветовой панели. Я попробовал использовать функцию аннотации, но она заполняет фигуру слишком большим количеством значений. Я прилагаю то, что я получил с помощью этого кода:
Код: Выделить всё
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()
Источник: https://stackoverflow.com/questions/781 ... r-diagramm