Spaces:
Sleeping
Sleeping
Update src/vis_utils.py
Browse files- src/vis_utils.py +22 -16
src/vis_utils.py
CHANGED
@@ -179,31 +179,37 @@ def plot_family_results(method_names, dataset, metric, family_path="/tmp/family_
|
|
179 |
|
180 |
# Filter by method names and selected dataset columns
|
181 |
df = df[df['Method'].isin(method_names)]
|
182 |
-
metric_columns = [col for col in df.columns if col.startswith(f"{dataset}_{metric}_")]
|
183 |
-
|
184 |
-
# Reshape data for plotting
|
185 |
-
df_long = pd.melt(df[['Method'] + metric_columns], id_vars=['Method'], var_name='Fold', value_name='Value')
|
186 |
-
df_long['Fold'] = df_long['Fold'].apply(lambda x: int(x.split('_')[-1])) # Extract fold index
|
187 |
|
188 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
189 |
|
190 |
# Set up the plot
|
191 |
-
sns.set(rc={
|
192 |
sns.set_theme(style="whitegrid", color_codes=True)
|
193 |
-
|
194 |
-
|
195 |
-
|
|
|
|
|
196 |
ax.xaxis.set_major_locator(ticker.MultipleLocator(0.2))
|
197 |
-
ax.
|
198 |
-
ax.
|
199 |
-
ax.grid(visible=True, which=
|
200 |
-
ax.grid(visible=True, which=
|
201 |
ax.set_xlim(0, 1)
|
202 |
|
203 |
-
#
|
204 |
yticks = ax.get_yticks()
|
205 |
for ytick in yticks:
|
206 |
-
ax.hlines(ytick + 0.5, -0.1, 1, linestyles=
|
|
|
207 |
|
208 |
# Apply color settings to y-axis labels
|
209 |
for label in ax.get_yticklabels():
|
|
|
179 |
|
180 |
# Filter by method names and selected dataset columns
|
181 |
df = df[df['Method'].isin(method_names)]
|
|
|
|
|
|
|
|
|
|
|
182 |
|
183 |
+
# Filter columns based on the aspect and metrics
|
184 |
+
value_vars = [col for col in df.columns if col.startswith(f"{dataset}_") and "_" in col]
|
185 |
+
|
186 |
+
# Reshape the DataFrame to long format
|
187 |
+
df_long = pd.melt(df, id_vars=["Method"], value_vars=value_vars, var_name="Aspect_Metric_Fold", value_name="Value")
|
188 |
+
|
189 |
+
# Split the "Aspect_Metric_Fold" column into "Metric" and "Fold"
|
190 |
+
df_long[["Metric", "Fold"]] = df_long["Aspect_Metric_Fold"].str[len(aspect) + 1:].str.split("_", expand=True)
|
191 |
+
df_long["Fold"] = df_long["Fold"].astype(int)
|
192 |
|
193 |
# Set up the plot
|
194 |
+
sns.set(rc={"figure.figsize": (13.7, 18.27)})
|
195 |
sns.set_theme(style="whitegrid", color_codes=True)
|
196 |
+
|
197 |
+
# Create boxplot
|
198 |
+
ax = sns.boxplot(data=df_long, x="Value", y="Method", hue="Metric", whis=np.inf, orient="h")
|
199 |
+
|
200 |
+
# Customize grid and ticks
|
201 |
ax.xaxis.set_major_locator(ticker.MultipleLocator(0.2))
|
202 |
+
ax.xaxis.set_minor_locator(ticker.AutoMinorLocator())
|
203 |
+
ax.yaxis.set_minor_locator(ticker.AutoMinorLocator())
|
204 |
+
ax.grid(visible=True, which="major", color="gainsboro", linewidth=1.0)
|
205 |
+
ax.grid(visible=True, which="minor", color="whitesmoke", linewidth=0.5)
|
206 |
ax.set_xlim(0, 1)
|
207 |
|
208 |
+
# Add dashed lines between methods
|
209 |
yticks = ax.get_yticks()
|
210 |
for ytick in yticks:
|
211 |
+
ax.hlines(ytick + 0.5, -0.1, 1, linestyles="dashed", color="gray")
|
212 |
+
|
213 |
|
214 |
# Apply color settings to y-axis labels
|
215 |
for label in ax.get_yticklabels():
|