Spaces:
Runtime error
Runtime error
# from pathlib import Path | |
# from typing import List, Dict, Tuple | |
# import matplotlib.colors as mpl_colors | |
# import pandas as pd | |
# import seaborn as sns | |
# import shinyswatch | |
# from shiny import App, Inputs, Outputs, Session, reactive, render, req, ui | |
# sns.set_theme() | |
# www_dir = Path(__file__).parent.resolve() / "www" | |
# df = pd.read_csv(Path(__file__).parent / "penguins.csv", na_values="NA") | |
# numeric_cols: List[str] = df.select_dtypes(include=["float64"]).columns.tolist() | |
# species: List[str] = df["Species"].unique().tolist() | |
# species.sort() | |
# app_ui = ui.page_fillable( | |
# shinyswatch.theme.minty(), | |
# ui.layout_sidebar( | |
# ui.sidebar( | |
# # Artwork by @allison_horst | |
# ui.input_selectize( | |
# "xvar", | |
# "X variable", | |
# numeric_cols, | |
# selected="Bill Length (mm)", | |
# ), | |
# ui.input_selectize( | |
# "yvar", | |
# "Y variable", | |
# numeric_cols, | |
# selected="Bill Depth (mm)", | |
# ), | |
# ui.input_checkbox_group( | |
# "species", "Filter by species", species, selected=species | |
# ), | |
# ui.hr(), | |
# ui.input_switch("by_species", "Show species", value=True), | |
# ui.input_switch("show_margins", "Show marginal plots", value=True), | |
# ), | |
# ui.output_ui("value_boxes"), | |
# ui.output_plot("scatter", fill=True), | |
# ui.help_text( | |
# "Artwork by ", | |
# ui.a("@allison_horst", href="https://twitter.com/allison_horst"), | |
# class_="text-end", | |
# ), | |
# ), | |
# ) | |
# def server(input: Inputs, output: Outputs, session: Session): | |
# @reactive.Calc | |
# def filtered_df() -> pd.DataFrame: | |
# """Returns a Pandas data frame that includes only the desired rows""" | |
# # This calculation "req"uires that at least one species is selected | |
# req(len(input.species()) > 0) | |
# # Filter the rows so we only include the desired species | |
# return df[df["Species"].isin(input.species())] | |
# @output | |
# @render.plot | |
# def scatter(): | |
# """Generates a plot for Shiny to display to the user""" | |
# # The plotting function to use depends on whether margins are desired | |
# plotfunc = sns.jointplot if input.show_margins() else sns.scatterplot | |
# plotfunc( | |
# data=filtered_df(), | |
# x=input.xvar(), | |
# y=input.yvar(), | |
# palette=palette, | |
# hue="Species" if input.by_species() else None, | |
# hue_order=species, | |
# legend=False, | |
# ) | |
# @output | |
# @render.ui | |
# def value_boxes(): | |
# df = filtered_df() | |
# def penguin_value_box(title: str, count: int, bgcol: str, showcase_img: str): | |
# return ui.value_box( | |
# title, | |
# count, | |
# {"class_": "pt-1 pb-0"}, | |
# showcase=ui.fill.as_fill_item( | |
# ui.tags.img( | |
# {"style": "object-fit:contain;"}, | |
# src=showcase_img, | |
# ) | |
# ), | |
# theme_color=None, | |
# style=f"background-color: {bgcol};", | |
# ) | |
# if not input.by_species(): | |
# return penguin_value_box( | |
# "Penguins", | |
# len(df.index), | |
# bg_palette["default"], | |
# # Artwork by @allison_horst | |
# showcase_img="penguins.png", | |
# ) | |
# value_boxes = [ | |
# penguin_value_box( | |
# name, | |
# len(df[df["Species"] == name]), | |
# bg_palette[name], | |
# # Artwork by @allison_horst | |
# showcase_img=f"{name}.png", | |
# ) | |
# for name in species | |
# # Only include boxes for _selected_ species | |
# if name in input.species() | |
# ] | |
# return ui.layout_column_wrap(*value_boxes, width = 1 / len(value_boxes)) | |
# # "darkorange", "purple", "cyan4" | |
# colors = [[255, 140, 0], [160, 32, 240], [0, 139, 139]] | |
# colors = [(r / 255.0, g / 255.0, b / 255.0) for r, g, b in colors] | |
# palette: Dict[str, Tuple[float, float, float]] = { | |
# "Adelie": colors[0], | |
# "Chinstrap": colors[1], | |
# "Gentoo": colors[2], | |
# "default": sns.color_palette()[0], # type: ignore | |
# } | |
# bg_palette = {} | |
# # Use `sns.set_style("whitegrid")` to help find approx alpha value | |
# for name, col in palette.items(): | |
# # Adjusted n_colors until `axe` accessibility did not complain about color contrast | |
# bg_palette[name] = mpl_colors.to_hex(sns.light_palette(col, n_colors=7)[1]) # type: ignore | |
# app = App( | |
# app_ui, | |
# server, | |
# static_assets=str(www_dir), | |
# ) | |
from data import get_data | |
get_data() | |