import vizro.plotly.express as px
from vizro import Vizro
import vizro.models as vm
from vizro.figures import kpi_card, kpi_card_reference
df = px.data.iris()
df["mean_petal_width"] = df.petal_width.mean()
df["mean_sepal_length"] = df.sepal_length.mean()
df["mean_sepal_width"] = df.sepal_width.mean()
page = vm.Page(
title="Vizro on PyCafe",
layout = vm.Layout(grid = [
[0,0,0,0,1,2,3],
[4,4,8,8,8,8,8],
[5,5,8,8,8,8,8],
[6,6,9,9,9,9,9],
[7,7,9,9,9,9,9]
]),
components=[
vm.Card(text = """
### What is Vizro?
Vizro is a toolkit for creating modular data visualization applications.
Rapidly self-serve the assembly of customized dashboards in minutes - without the need for advanced coding or design experience - to create flexible and scalable, Python-enabled data visualization applications.
"""
),
vm.Card(
text="""
### Github
Checkout Vizro's github page for further information and release notes. Contributions are always welcome!
""",
href = "https://github.com/mckinsey/vizro"
),
vm.Card(
text="""
### Docs
Visit the documentation for codes examples, tutorials and API reference.
""",
href = "https://vizro.readthedocs.io/"
),
vm.Card(
text="""
### Gallery
Head to Vizro's Gallery to see some beautiful dashboards for inspiration.
""",
href = "https://huggingface.co/vizro"
),
vm.Figure(
figure=kpi_card(
data_frame=df,
value_column="species",
agg_func = "count",
title="Number of samples",
icon="local_florist",
),
),
vm.Figure(
figure=kpi_card_reference(
data_frame=df,
value_column="petal_width",
reference_column="mean_petal_width",
agg_func="mean",
title="Mean petal width",
icon="grid_goldenratio",
value_format="{value:.2f} cm",
reference_format = "{delta:.2f} cm vs. overall ({reference:.2f} cm)"
),
),
vm.Figure(
figure=kpi_card_reference(
data_frame=df,
value_column="sepal_length",
reference_column="mean_sepal_length",
agg_func="mean",
title="Mean sepal length",
icon="grid_goldenratio",
value_format="{value:.2f} cm",
reference_format = "{delta:.2f} cm vs. overall ({reference:.2f} cm)"
),
),
vm.Figure(
figure=kpi_card_reference(
data_frame=df,
value_column="sepal_width",
reference_column="mean_sepal_width",
agg_func="mean",
title="Mean sepal width",
icon="grid_goldenratio",
value_format="{value:.2f} cm",
reference_format = "{delta:.2f} cm vs. overall ({reference:.2f} cm)"
),
),
vm.Graph(id="scatter_chart", figure=px.scatter(df, x="sepal_length", y="petal_width", color="species")),
vm.Graph(id="hist_chart", figure=px.histogram(df, x="sepal_width", color="species")),
],
controls=[
vm.Filter(column="species", selector=vm.Dropdown(value=["ALL"])),
vm.Filter(column="petal_length"),
vm.Filter(column="sepal_width")
],
)
dashboard = vm.Dashboard(pages=[page])
Vizro().build(dashboard).run()