File size: 1,411 Bytes
6c9ff9d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import plotly.express as px
from .data_utils import generate_data

async def plot_ratings(criteria : str):
    """
    Plot different ratings of the models for a given criteria on a line graph.

    Args:
        criteria (str): The criteria to plot the ratings for.
    """
    data = await generate_data()

    elo_data = data[data['Criteria'] == criteria].reset_index(drop=True)
    elo_data.reset_index(inplace=True)
    elo_data['index'] = elo_data['index'].apply(lambda x: int(x/2))
    elo_fig = px.line(elo_data, x='index', y='Elo', color='Model', title='Elo Ratings Over Total Votes', labels={'index': 'Total Votes', 'Elo': 'Elo Rating'})

    wr_data = data[data['Criteria'] == criteria].reset_index(drop=True)
    wr_data.reset_index(inplace=True)
    wr_data['index'] = wr_data['index'].apply(lambda x: int(x/2))
    wr_fig = px.line(wr_data, x='index', y='Win Rate', color='Model', title='Win Rates Over Total Votes', labels={'index': 'Total Votes', 'Win Rate': 'Win Rate'})

    matches_data = data[data['Criteria'] == criteria].reset_index(drop=True)
    matches_data.reset_index(inplace=True)
    matches_data['index'] = matches_data['index'].apply(lambda x: int(x/2))
    matches_fig = px.line(matches_data, x='index', y='Matches', color='Model', title='Matches Played Over Total Votes', labels={'index': 'Total Votes', 'Matches': 'Matches Played'})
    
    return elo_fig, wr_fig, matches_fig