docker_streamlit / scripts_build /03_holoviews.py
hathawayj's picture
first push
59a2d05
raw
history blame
1.81 kB
# %%
import polars as pl
import holoviews as hv
import panel as pn
from holoviews import opts
hv.extension('bokeh')
dat = pl.read_parquet("../data/dat_munged.parquet")
info = pl.read_csv("../data/Metadata_Indicator_API_Download_DS2_en_csv_v2_5657328.csv").rename({"INDICATOR_CODE":"Indicator Code", "INDICATOR_NAME":"Indicator Name"})
dat_vars = dat\
.group_by("Indicator Name", "Indicator Code", "Country Code").len()\
.pivot(values="len", index=["Indicator Name", "Indicator Code"], columns="Country Code", aggregate_function="first")\
.with_columns((pl.col("COD").fill_null(0) + pl.col("GHA").fill_null(0) +
pl.col("KEN").fill_null(0) + pl.col("NGA").fill_null(0) +
pl.col("ZAF").fill_null(0) + pl.col("ZWE").fill_null(0)).alias("total"))\
.sort(pl.col("total"), descending=True)\
.filter(pl.col("total") > 25)
# %%
hv.Scatter(dat.filter(pl.col("Indicator Code").is_in(["NY.GDP.PCAP.PP.KD"])).to_pandas(), "year", "value")\
.opts(width=500)
# %%
def select_row(row=0):
return dat.slice(row, 1)
app = pn.interact(select_row, row=(0, dat.select(pl.len()).item()))
print(app)
# %%
pn.Column("## Choose a row", pn.Row(app[0], app[1]))
# %%
color_picker = pn.widgets.ColorPicker()
color_picker
# %%
html = pn.pane.HTML('', width=200, height=200, styles={'background-color': color_picker.value})
color_picker.link(html, value="background-color")# %%
html
# %%
x = pn.widgets.IntSlider(name='x', start=0, end=100)
background = pn.widgets.ColorPicker(name='Background', value='lightgray')
def square(x):
return f'{x} squared is {x**2}'
def styles(background):
return {'background-color': background, 'padding': '0 10px'}
pn.Column(
x,
background,
pn.pane.Markdown(pn.bind(square, x), styles=pn.bind(styles, background))
)
# %%