Spaces:
Running
Running
"""Part-to-whole charts.""" | |
import vizro.models as vm | |
from pages._factories import waterfall_factory | |
from pages._pages_utils import PAGE_GRID, make_code_clipboard_from_py_file | |
from pages.examples import donut, funnel, pie, stacked_bar, stacked_column, treemap | |
pie_page = vm.Page( | |
title="Pie", | |
path="part-to-whole/pie", | |
layout=vm.Layout(grid=PAGE_GRID), | |
components=[ | |
vm.Card( | |
text=""" | |
#### What is a pie chart? | |
A pie chart is a circular chart divided into segments to show proportions and percentages between | |
categories. The circle represents the whole. | |
| |
#### When should I use it? | |
Use the pie chart when you need to show your audience a quick view of how data is distributed | |
proportionately, with percentages highlighted. The different values you present must add up to a total and | |
equal 100%. | |
The downsides are that pie charts tend to occupy more space than other charts, they don't | |
work well with more than a few values because labeling small segments is challenging, and it can be | |
difficult to accurately compare the sizes of the segments. | |
""" | |
), | |
vm.Graph(figure=pie.fig), | |
vm.Tabs( | |
tabs=[ | |
vm.Container( | |
title="Vizro dashboard", components=[make_code_clipboard_from_py_file("pie.py", mode="vizro")] | |
), | |
vm.Container( | |
title="Plotly figure", | |
components=[make_code_clipboard_from_py_file("pie.py", mode="plotly")], | |
), | |
] | |
), | |
], | |
) | |
donut_page = vm.Page( | |
title="Donut", | |
path="part-to-whole/donut", | |
layout=vm.Layout(grid=PAGE_GRID), | |
components=[ | |
vm.Card( | |
text=""" | |
#### What is a donut chart? | |
A donut chart looks like a pie chart, but has a blank space in the center which may contain additional | |
information. | |
| |
#### When should I use it? | |
A donut chart can be used in place of a pie chart, particularly when you are short of space or have extra | |
information you would like to share about the data. It may also be more effective if you wish your audience | |
to focus on the length of the arcs of the sections instead of the proportions of the segment sizes. | |
""" | |
), | |
vm.Graph(figure=donut.fig), | |
vm.Tabs( | |
tabs=[ | |
vm.Container( | |
title="Vizro dashboard", components=[make_code_clipboard_from_py_file("donut.py", mode="vizro")] | |
), | |
vm.Container( | |
title="Plotly figure", | |
components=[make_code_clipboard_from_py_file("donut.py", mode="plotly")], | |
), | |
] | |
), | |
], | |
) | |
treemap_page = vm.Page( | |
title="Treemap", | |
path="part-to-whole/treemap", | |
layout=vm.Layout(grid=PAGE_GRID), | |
components=[ | |
vm.Card( | |
text=""" | |
#### What is a treemap? | |
A treemap shows hierarchical data arranged as a set of nested rectangles: rectangles are sized | |
proportionately to the quantity they represent, combined together to form larger parent category | |
rectangles. | |
| |
#### When should I use it? | |
It's helpful to use a treemap when you wish to display hierarchical part-to-whole relationships. You can | |
compare groups and single elements nested within them. Consider using them instead of Pie charts when | |
you have a higher number of categories. Treemaps are very compact and allow audiences to get a quick | |
overview of the data. | |
""" | |
), | |
vm.Graph(figure=treemap.fig), | |
vm.Tabs( | |
tabs=[ | |
vm.Container( | |
title="Vizro dashboard", components=[make_code_clipboard_from_py_file("treemap.py", mode="vizro")] | |
), | |
vm.Container( | |
title="Plotly figure", | |
components=[make_code_clipboard_from_py_file("treemap.py", mode="plotly")], | |
), | |
] | |
), | |
], | |
) | |
stacked_bar_page = vm.Page( | |
title="Stacked bar", | |
path="part-to-whole/stacked-bar", | |
layout=vm.Layout(grid=PAGE_GRID), | |
components=[ | |
vm.Card( | |
text=""" | |
#### What is a stacked bar chart? | |
A stacked bar chart displays bars divided into segments, with each segment's length proportional to the | |
value it represents. One axis shows the categories being compared, while the other provides a value scale | |
starting from zero. The segments within each bar are stacked on top of each other, allowing for a cumulative | |
comparison. | |
| |
#### When should I use it? | |
Use a stacked bar chart to help your audience compare the total sizes of categories as well as the | |
individual components within those categories. This chart type is ideal for visualizing part-to-whole | |
relationships and identifying patterns within categorical data. Ensure clear labeling for each segment, | |
especially when there are many categories, and consider using a legend or abbreviations with fuller | |
descriptions below. | |
""" | |
), | |
vm.Graph(figure=stacked_bar.fig), | |
vm.Tabs( | |
tabs=[ | |
vm.Container( | |
title="Vizro dashboard", | |
components=[make_code_clipboard_from_py_file("stacked_bar.py", mode="vizro")], | |
), | |
vm.Container( | |
title="Plotly figure", | |
components=[make_code_clipboard_from_py_file("stacked_bar.py", mode="plotly")], | |
), | |
] | |
), | |
], | |
) | |
stacked_column_page = vm.Page( | |
title="Stacked column", | |
path="part-to-whole/stacked-column", | |
layout=vm.Layout(grid=PAGE_GRID), | |
components=[ | |
vm.Card( | |
text=""" | |
#### What is a stacked column chart? | |
A stacked column chart displays columns divided into segments, with each segment's height proportional to | |
the value it represents. One axis shows the categories being compared, while the other provides a value | |
scale starting from zero. The segments within each column are stacked on top of each other, allowing for a | |
cumulative comparison. | |
| |
#### When should I use it? | |
Use a stacked column chart to help your audience compare the total sizes of categories as well as the | |
individual components within those categories. This chart type is ideal for visualizing part-to-whole | |
relationships and identifying patterns within categorical data. Ensure clear labeling for each segment, | |
especially when there are many categories, and consider using a legend or abbreviations with fuller | |
descriptions below. | |
""" | |
), | |
vm.Graph(figure=stacked_column.fig), | |
vm.Tabs( | |
tabs=[ | |
vm.Container( | |
title="Vizro dashboard", | |
components=[make_code_clipboard_from_py_file("stacked_column.py", mode="vizro")], | |
), | |
vm.Container( | |
title="Plotly figure", | |
components=[make_code_clipboard_from_py_file("stacked_column.py", mode="plotly")], | |
), | |
] | |
), | |
], | |
) | |
funnel_page = vm.Page( | |
title="Funnel", | |
path="part-to-whole/funnel", | |
layout=vm.Layout(grid=PAGE_GRID), | |
components=[ | |
vm.Card( | |
text=""" | |
#### What is a funnel chart? | |
A funnel area chart is a type of data visualization that represents stages in a process, with the size of | |
each area proportional to its value. The chart typically narrows as it progresses, visually depicting the | |
reduction in numbers through each stage. One axis represents the stages of the process, while the other axis | |
indicates the values or quantities at each stage. | |
| |
#### When should I use it? | |
Use a funnel area chart to help your audience understand and compare the progression of data through | |
different stages of a process. This chart type is particularly effective for visualizing conversion rates, | |
sales processes, or any sequential data where you want to highlight drop-offs or reductions between stages. | |
""" | |
), | |
vm.Graph(figure=funnel.fig), | |
vm.Tabs( | |
tabs=[ | |
vm.Container( | |
title="Vizro dashboard", components=[make_code_clipboard_from_py_file("funnel.py", mode="vizro")] | |
), | |
vm.Container( | |
title="Plotly figure", | |
components=[make_code_clipboard_from_py_file("funnel.py", mode="plotly")], | |
), | |
] | |
), | |
], | |
) | |
waterfall_page = waterfall_factory("part-to-whole") | |
pages = [donut_page, pie_page, treemap_page, stacked_bar_page, stacked_column_page, funnel_page, waterfall_page] | |