antonymilne's picture
Add pycafe link and plotly code (#1)
b699ae9 verified
raw
history blame
7.22 kB
"""Contains reusable page functions to create identical content with a different `id`.
Note: Since each page can only belong to one navigation group, we need a new page with a unique ID for
each chart type used in different groups.
"""
import vizro.models as vm
from pages._pages_utils import PAGE_GRID, make_code_clipboard_from_py_file
from pages.examples import butterfly, column_and_line, connected_scatter, waterfall
def butterfly_factory(group: str):
"""Reusable function to create the page content for the butterfly chart with a unique ID."""
return vm.Page(
id=f"{group}-butterfly",
path=f"{group}/butterfly",
title="Butterfly",
layout=vm.Layout(grid=PAGE_GRID),
components=[
vm.Card(
text="""
#### What is a butterfly chart?
A butterfly chart (also called a tornado chart) is a bar chart for displaying two sets of data series
side by side.
 
#### When should I use it?
Use a butterfly chart when you wish to emphasize the comparison between two data sets sharing the same
parameters. Sharing this chart with your audience will help them see at a glance how two groups differ
within the same parameters. You can also **stack** two bars on each side to divide your
categories.
"""
),
vm.Graph(figure=butterfly.fig),
vm.Tabs(
tabs=[
vm.Container(
title="Vizro dashboard",
components=[make_code_clipboard_from_py_file("butterfly.py", mode="vizro")],
),
vm.Container(
title="Plotly figure",
components=[make_code_clipboard_from_py_file("butterfly.py", mode="plotly")],
),
]
),
],
)
def connected_scatter_factory(group: str):
"""Reusable function to create the page content for the column chart with a unique ID."""
return vm.Page(
id=f"{group}-connected-scatter",
path=f"{group}/connected-scatter",
title="Connected scatter",
layout=vm.Layout(grid=PAGE_GRID),
components=[
vm.Card(
text="""
#### What is a connected scatter chart?
A connected scatter chart visualizes two variables (x and y) using dots, with lines connecting the dots
in the order of the data points. One variable is plotted along the x-axis and the other along the
y-axis, showing both the relationship and a sequence of the data.
 
#### When should I use it?
Use connected scatter charts to show the relationship between two variables and the sequence of data
points. They are ideal for paired numerical data, helping to reveal trends and patterns over time or in
a specific order. Remember, correlation is not causation, so ensure your audience understands this to
avoid misinterpretation.
"""
),
vm.Graph(figure=connected_scatter.fig),
vm.Tabs(
tabs=[
vm.Container(
title="Vizro dashboard",
components=[make_code_clipboard_from_py_file("connected_scatter.py", mode="vizro")],
),
vm.Container(
title="Plotly figure",
components=[make_code_clipboard_from_py_file("connected_scatter.py", mode="plotly")],
),
]
),
],
)
def column_and_line_factory(group: str):
"""Reusable function to create the page content for the column+line chart with a unique ID."""
return vm.Page(
id=f"{group}-column-and-line",
path=f"{group}/column-and-line",
title="Column and line",
layout=vm.Layout(grid=PAGE_GRID),
components=[
vm.Card(
text="""
#### What is a column and line chart?
A combined column and line chart helps you demonstrate the relationship between an amount
(displayed in columns) and a trend or rate (displayed as a line running across the columns).
 
#### When should I use it?
Use this type of chart when you wish to compare quantities of one item with changes in another item.
It's ideal for showing patterns over time (e.g., monthly sales and growth rates) but can also be used
for other types of data comparisons.
"""
),
vm.Graph(figure=column_and_line.fig),
vm.Tabs(
tabs=[
vm.Container(
title="Vizro dashboard",
components=[make_code_clipboard_from_py_file("column_and_line.py", mode="vizro")],
),
vm.Container(
title="Plotly figure",
components=[make_code_clipboard_from_py_file("column_and_line.py", mode="plotly")],
),
]
),
],
)
def waterfall_factory(group: str):
"""Reusable function to create the page content for the column chart with a unique ID."""
return vm.Page(
id=f"{group}-waterfall",
path=f"{group}/waterfall",
title="Waterfall",
layout=vm.Layout(grid=PAGE_GRID),
components=[
vm.Card(
text="""
#### What is a waterfall chart?
A waterfall chart is a bar chart that shows the cumulative effect of sequential positive or negative
values. It starts with an initial value, displays individual changes as steps, and ends with the
final total.
 
#### When should I use it?
Use a waterfall chart to visualize how individual factors contribute to a total, such as changes in
revenue or costs by category. It helps you understand the incremental impact of each factor, making
data analysis and interpretation easier. Ensure all bars and changes are clearly labeled, use consistent
colors for positive and negative values, and arrange categories logically to tell a coherent story.
"""
),
vm.Graph(figure=waterfall.fig),
vm.Tabs(
tabs=[
vm.Container(
title="Vizro dashboard",
components=[make_code_clipboard_from_py_file("waterfall.py", mode="vizro")],
),
vm.Container(
title="Plotly figure",
components=[make_code_clipboard_from_py_file("waterfall.py", mode="plotly")],
),
]
),
],
)