From 7fe36308fbff9fb65d1452618d31a30b30f43ad2 Mon Sep 17 00:00:00 2001 From: Lorenzo Volpi Date: Tue, 28 Nov 2023 09:19:21 +0100 Subject: [PATCH] dash first implementation --- qcdash/__init__.py | 0 qcdash/app.py | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 qcdash/__init__.py create mode 100644 qcdash/app.py diff --git a/qcdash/__init__.py b/qcdash/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/qcdash/app.py b/qcdash/app.py new file mode 100644 index 0000000..3d79b5d --- /dev/null +++ b/qcdash/app.py @@ -0,0 +1,45 @@ +from pathlib import Path + +import numpy as np +import pandas as pd +import plotly.graph_objects as go +from dash import Dash, dash_table, dcc, html + +from quacc.evaluation.report import DatasetReport + + +def get_fig(data: pd.DataFrame): + fig = go.Figure() + xs = data.index.to_numpy() + for col in data.columns.unique(0): + _line = go.Scatter(x=xs, y=data.loc[:, col], mode="lines+markers", name=col) + fig.add_trace(_line) + + fig.update_layout(xaxis_title="test_prevalence", yaxis_title="acc. error") + + return fig + + +def app_instance(): + dr: DatasetReport = DatasetReport.unpickle(Path("output/debug/imdb/imdb.pickle")) + data = dr.data(metric="acc").groupby(level=1).mean() + + app = Dash(__name__) + + app.layout = html.Div( + [ + # html.Div(children="Hello World"), + # dash_table.DataTable(data=df.to_dict("records")), + dcc.Graph(figure=get_fig(data), style={"height": "95vh"}), + ] + ) + return app + + +def run(): + app = app_instance() + app.run(debug=True) + + +if __name__ == "__main__": + run()