Skip to content

Commit

Permalink
Make leaderboard automatically reorder categories
Browse files Browse the repository at this point in the history
  • Loading branch information
ph-kev committed Feb 18, 2025
1 parent dfec6a1 commit 59531c5
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 5 deletions.
14 changes: 10 additions & 4 deletions ext/ClimaAnalysisMakieExt.jl
Original file line number Diff line number Diff line change
Expand Up @@ -804,14 +804,20 @@ function Visualize.plot_leaderboard!(
model_names = ["CliMA"],
best_category_name = "ANN",
)
# Check if rmse_model_vars all have the same categories
categories_names = ClimaAnalysis.category_names.(rmse_vars)
# Check if rmse_model_vars all have the same categories (order does not matter)
categories_names = Set.(ClimaAnalysis.category_names.(rmse_vars))
categories_same = length(unique(categories_names)) == 1
categories_same ||
error("Categories are not all the same across the RMSEVariable")

rmse_var = first(rmse_vars)
categ_names = ClimaAnalysis.category_names(rmse_var)
# Reorder categories since the order can be different
first_rmse_var = first(rmse_vars)
rmse_vars = collect(
ClimaAnalysis.match_category_order(rmse_var, first_rmse_var) for
rmse_var in rmse_vars
)

categ_names = ClimaAnalysis.category_names(first_rmse_var)
num_variables = length(rmse_vars)
num_boxes = length(categ_names) # number of categories
num_models = 1 + length(model_names) # best model plus the other models in model_names
Expand Down
7 changes: 6 additions & 1 deletion test/test_MakieExt.jl
Original file line number Diff line number Diff line change
Expand Up @@ -286,6 +286,11 @@ using OrderedCollections
"CliMA" => "units",
),
)
# Test that reordering will not result in an error in plot_leaderboard!
rmse_var2_reordered = ClimaAnalysis.Leaderboard.reorder_categories(
rmse_var2,
["ANN", "MAM", "JJA", "SON", "DJF"],
)


# Normalized RMSEs should improve going from ta to ta1 to ta2 for CliMA model
Expand All @@ -297,7 +302,7 @@ using OrderedCollections
fig,
rmse_var,
rmse_var1,
rmse_var2,
rmse_var2_reordered,
best_category_name = "ANN",
)
output_name = joinpath(tmp_dir, "test_leaderboard.png")
Expand Down

0 comments on commit 59531c5

Please sign in to comment.