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 |