cmpatino's picture
Setup first version
ef1df2a
raw
history blame
2.08 kB
import gradio as gr
import matplotlib.pyplot as plt
import seaborn as sns
from datasets import load_dataset
import histos
dataset = load_dataset("cmpatino/optimal_observables", "train")
dataset_df = dataset["train"].to_pandas()
dataset_df["target"] = dataset_df["target"].map({0: "spin-OFF", 1: "spin-ON"})
def get_plot(features, n_bins):
plotting_df = dataset_df.copy()
if len(features) == 1:
fig, ax = plt.subplots()
values = [
plotting_df[plotting_df["target"] == "spin-ON"][features[0]],
plotting_df[plotting_df["target"] == "spin-OFF"][features[0]],
]
labels = ["spin-ON", "spin-OFF"]
fig = histos.ratio_hist(
processes_q=values,
hist_labels=labels,
reference_label=labels[1],
n_bins=n_bins,
hist_range=None,
title=features[0],
)
return fig
if len(features) == 2:
return sns.displot(
plotting_df,
x=features[0],
y=features[1],
hue="target",
bins=n_bins,
height=8,
aspect=1,
).fig
with gr.Blocks() as demo:
with gr.Column():
with gr.Row():
features = gr.Dropdown(
choices=dataset_df.columns.to_list(),
label="Feature",
value="m_tt",
multiselect=True,
)
n_bins = gr.Slider(
label="Number of Bins for Histogram",
value=10,
minimum=10,
maximum=100,
step=10,
)
feature_plot = gr.Plot(label="Feature's Plot")
features.change(
get_plot,
[features, n_bins],
feature_plot,
queue=False,
)
n_bins.change(
get_plot,
[features, n_bins],
feature_plot,
queue=False,
)
demo.load(
get_plot,
[features, n_bins],
feature_plot,
queue=False,
)
if __name__ == "__main__":
demo.launch()