Spaces:
Sleeping
Sleeping
Update src/vis_utils.py
Browse files- src/vis_utils.py +22 -11
src/vis_utils.py
CHANGED
@@ -230,32 +230,43 @@ def plot_affinity_results(method_names, metric, affinity_path="/tmp/affinity_res
|
|
230 |
|
231 |
# Gather columns related to the specified metric and validate
|
232 |
metric_columns = [col for col in df.columns if col.startswith(f"{metric}_")]
|
233 |
-
|
234 |
-
# Reshape data for plotting
|
235 |
-
df_long = pd.melt(df[['Method'] + metric_columns], id_vars=['Method'], var_name='Fold', value_name='Value')
|
236 |
-
df_long['Fold'] = df_long['Fold'].apply(lambda x: int(x.split('_')[-1])) # Extract fold index for sorting
|
237 |
|
238 |
df = df.fillna(0)
|
239 |
|
|
|
|
|
|
|
240 |
# Set up the plot
|
241 |
-
sns.set(rc={'figure.figsize': (
|
242 |
sns.set_theme(style="whitegrid", color_codes=True)
|
243 |
|
244 |
-
# Create
|
245 |
-
ax = sns.boxplot(data=
|
246 |
-
|
247 |
-
#
|
|
|
|
|
|
|
|
|
248 |
ax.xaxis.set_major_locator(ticker.MultipleLocator(5))
|
249 |
-
ax.
|
250 |
-
ax.
|
251 |
ax.grid(visible=True, which='major', color='gainsboro', linewidth=1.0)
|
252 |
ax.grid(visible=True, which='minor', color='whitesmoke', linewidth=0.5)
|
253 |
|
|
|
|
|
|
|
|
|
|
|
254 |
# Apply custom color settings to y-axis labels
|
255 |
for label in ax.get_yticklabels():
|
256 |
method = label.get_text()
|
257 |
label.set_color(get_method_color(method))
|
258 |
|
|
|
|
|
|
|
259 |
# Save the plot
|
260 |
save_path = "/tmp"
|
261 |
filename = os.path.join(save_path, f"{metric}_affinity_results.png")
|
|
|
230 |
|
231 |
# Gather columns related to the specified metric and validate
|
232 |
metric_columns = [col for col in df.columns if col.startswith(f"{metric}_")]
|
|
|
|
|
|
|
|
|
233 |
|
234 |
df = df.fillna(0)
|
235 |
|
236 |
+
df = df.T
|
237 |
+
|
238 |
+
print(df)
|
239 |
# Set up the plot
|
240 |
+
sns.set(rc={'figure.figsize': (11.7, 8.27)})
|
241 |
sns.set_theme(style="whitegrid", color_codes=True)
|
242 |
|
243 |
+
# Create the boxplot
|
244 |
+
ax = sns.boxplot(data=df_corr, whis=np.inf, orient="h")
|
245 |
+
|
246 |
+
# Add a swarmplot on top of the boxplot
|
247 |
+
sns.swarmplot(data=df_corr, orient="h", color=".1", ax=ax)
|
248 |
+
|
249 |
+
# Set labels and x-axis formatting
|
250 |
+
ax.set_xlabel("Percent Pearson Correlation")
|
251 |
ax.xaxis.set_major_locator(ticker.MultipleLocator(5))
|
252 |
+
ax.xaxis.set_minor_locator(ticker.AutoMinorLocator())
|
253 |
+
ax.yaxis.set_minor_locator(ticker.AutoMinorLocator())
|
254 |
ax.grid(visible=True, which='major', color='gainsboro', linewidth=1.0)
|
255 |
ax.grid(visible=True, which='minor', color='whitesmoke', linewidth=0.5)
|
256 |
|
257 |
+
# Add reference lines
|
258 |
+
ax.plot((best_pipr, best_pipr), (-1, len(df_corr.columns) + 1), color='black', label='Best PIPR')
|
259 |
+
ax.plot((baseline_ac, baseline_ac), (-1, len(df_corr.columns) + 1), color='purple', linestyle='dashed', label='Baseline AC')
|
260 |
+
ax.plot((baseline_ctd, baseline_ctd), (-1, len(df_corr.columns) + 1), color='brown', linestyle='dashed', label='Baseline CTD')
|
261 |
+
|
262 |
# Apply custom color settings to y-axis labels
|
263 |
for label in ax.get_yticklabels():
|
264 |
method = label.get_text()
|
265 |
label.set_color(get_method_color(method))
|
266 |
|
267 |
+
# Add legend
|
268 |
+
ax.legend(loc='best', frameon=True)
|
269 |
+
|
270 |
# Save the plot
|
271 |
save_path = "/tmp"
|
272 |
filename = os.path.join(save_path, f"{metric}_affinity_results.png")
|