wi-lab commited on
Commit
5f28bed
·
verified ·
1 Parent(s): 01bd7f3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -8
app.py CHANGED
@@ -61,23 +61,41 @@ def compute_f1_score(cm):
61
  f1 = np.nan_to_num(f1) # Replace NaN with 0
62
  return np.mean(f1) # Return the mean F1-score across all classes
63
 
64
- def plot_confusion_matrix_beamPred(cm, classes, title, save_path, light_mode=True):
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
65
  # Compute the average F1-score
66
  avg_f1 = compute_f1_score(cm)
67
 
68
  # Choose the color scheme based on the mode
69
- if light_mode:
70
- plt.style.use('default') # Use default (light) mode styling
71
- text_color = 'black'
72
- cmap = 'Blues' # Light-mode-friendly colormap
73
- else:
74
  plt.style.use('dark_background') # Use dark mode styling
75
  text_color = 'white'
76
  cmap = 'cividis' # Dark-mode-friendly colormap
 
 
 
 
77
 
78
  plt.figure(figsize=(10, 10))
79
 
80
- # Plot the confusion matrix with a dark-mode compatible colormap
81
  sns.heatmap(cm, cmap=cmap, cbar=True, linecolor='white', vmin=0, vmax=cm.max(), alpha=0.85)
82
 
83
  # Add F1-score to the title
@@ -98,7 +116,6 @@ def plot_confusion_matrix_beamPred(cm, classes, title, save_path, light_mode=Tru
98
  # Return the saved image
99
  return Image.open(save_path)
100
 
101
-
102
  def compute_average_confusion_matrix(folder):
103
  confusion_matrices = []
104
  max_num_labels = 0
 
61
  f1 = np.nan_to_num(f1) # Replace NaN with 0
62
  return np.mean(f1) # Return the mean F1-score across all classes
63
 
64
+ import matplotlib.pyplot as plt
65
+ import seaborn as sns
66
+ import numpy as np
67
+ from PIL import Image
68
+
69
+ def plot_confusion_matrix_beamPred(cm, classes, title, save_path, dark_mode=None):
70
+ """
71
+ Plot confusion matrix and adjust colors based on light/dark mode settings.
72
+ :param cm: Confusion matrix data.
73
+ :param classes: List of class labels.
74
+ :param title: Plot title.
75
+ :param save_path: Path to save the plot.
76
+ :param dark_mode: Boolean to toggle between light and dark modes. If None, use the current theme.
77
+ """
78
+
79
+ # If dark_mode is None, try detecting it from rcParams (matplotlib theme)
80
+ if dark_mode is None:
81
+ dark_mode = plt.rcParams['axes.facecolor'] == '#333333' # Check if dark background is set
82
+
83
  # Compute the average F1-score
84
  avg_f1 = compute_f1_score(cm)
85
 
86
  # Choose the color scheme based on the mode
87
+ if dark_mode:
 
 
 
 
88
  plt.style.use('dark_background') # Use dark mode styling
89
  text_color = 'white'
90
  cmap = 'cividis' # Dark-mode-friendly colormap
91
+ else:
92
+ plt.style.use('default') # Use default (light) mode styling
93
+ text_color = 'black'
94
+ cmap = 'Blues' # Light-mode-friendly colormap
95
 
96
  plt.figure(figsize=(10, 10))
97
 
98
+ # Plot the confusion matrix with the selected colormap
99
  sns.heatmap(cm, cmap=cmap, cbar=True, linecolor='white', vmin=0, vmax=cm.max(), alpha=0.85)
100
 
101
  # Add F1-score to the title
 
116
  # Return the saved image
117
  return Image.open(save_path)
118
 
 
119
  def compute_average_confusion_matrix(folder):
120
  confusion_matrices = []
121
  max_num_labels = 0