From 607306ae0fb5c5781e8484ca3fd6aa5eadb2d68c Mon Sep 17 00:00:00 2001
From: Danilo Ferreira de Lima <danilo.enoque.ferreira.de.lima@xfel.de>
Date: Wed, 16 Aug 2023 14:56:39 +0200
Subject: [PATCH] Added plot of the residuals correlation.

---
 pes_to_spec/test/prepare_plots.py | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/pes_to_spec/test/prepare_plots.py b/pes_to_spec/test/prepare_plots.py
index 7953bf0..7dc0888 100755
--- a/pes_to_spec/test/prepare_plots.py
+++ b/pes_to_spec/test/prepare_plots.py
@@ -10,7 +10,6 @@ import numpy as np
 import matplotlib.pyplot as plt
 from matplotlib.gridspec import GridSpec
 import seaborn as sns
-from scipy.interpolate import make_interp_spline, BSpline
 
 SMALL_SIZE = 12
 MEDIUM_SIZE = 18
@@ -102,6 +101,19 @@ def plot_residue(df: pd.DataFrame, filename: str):
     fig.savefig(filename)
     plt.close(fig)
 
+def plot_residue_corr(df: pd.DataFrame, filename: str):
+    cols = [k for k in df.columns if "res_prepca" in k]
+    df_res = df.loc[:, cols]
+    df_res.columns = [re.match(r"res_prepca_([0-9]*)", k).groups()[0] for k in df_res.columns]
+    fig = plt.figure(figsize=(8, 8))
+    corr = df_res.corr()
+    mask = np.triu(np.ones_like(corr, dtype=bool))
+    cmap = sns.diverging_palette(230, 20, as_cmap=True)
+    sns.heatmap(corr, mask=mask, cmap=cmap, center=0,
+                square=True, linewidths=0.5, vmin=-1, vmax=1)
+    fig.savefig(filename)
+    plt.close(fig)
+
 def plot_chi2_intensity(df: pd.DataFrame, filename: str):
     fig = plt.figure(figsize=(12, 8))
     gs = GridSpec(1, 1)
@@ -286,6 +298,7 @@ if __name__ == '__main__':
     plot_rmse_intensity(pd.read_csv(f'{indir}/quality.csv'), f'intensity_vs_rmse.pdf')
 
     plot_residue(pd.read_csv(f'{indir}/quality.csv'), f'residue.pdf')
+    plot_residue_corr(pd.read_csv(f'{indir}/quality.csv'), f'residue_corr.pdf')
 
     df_model = pd.read_csv(f'{indir}/model.csv')
     df_model.impulse = df_model.impulse.str.replace('i','j').apply(lambda x: np.complex(x))
-- 
GitLab