li-nguyen's picture
Copy over third batch version
42ee455
raw
history blame
5.95 kB
"""Time charts."""
import vizro.models as vm
import vizro.plotly.express as px
from custom_charts import categorical_column
from pages._factories import column_and_line_factory, connected_scatter_factory
from pages._pages_utils import PAGE_GRID, gapminder, make_code_clipboard_from_py_file, stepped_line_data, stocks, tips
line = vm.Page(
title="Line",
path="time/line",
layout=vm.Layout(grid=PAGE_GRID),
components=[
vm.Card(
text="""
#### What is a line chart?
A line chart presents a series of data points over a continuous interval or time period, joined together
with straight lines.
 
#### When should I use it?
You should select a line chart when you want to show trends over time. Usually, your y-axis will show a
quantitative value and your x-axis will be marked as a timescale or a sequence of intervals. You can also
display negative values below the x-axis. If you wish to group several lines (different data series) in the
same chart, try to limit yourself to 3-4 to avoid cluttering up your chart.
"""
),
vm.Graph(figure=px.line(stocks, x="date", y="GOOG")),
make_code_clipboard_from_py_file("line.py"),
],
)
# Note: Code example for magnitude/column differs from time/column. The text description is the same.
column = vm.Page(
id="time-column",
path="time/column",
title="Column",
layout=vm.Layout(grid=PAGE_GRID),
components=[
vm.Card(
text="""
#### What is a column chart?
A column chart is a type of bar chart where data is represented with vertical columns. Each
column's height corresponds to the value it represents, with the y-axis starting from zero.
 
#### When should I use it?
Use a column chart to compare sizes and identify patterns in categorical data, including time-based
data. Arrange columns to fit your message, and for time-based data, order them chronologically to
highlight trends. Ensure clear labeling, especially with many categories, and consider using a legend
or abbreviations with fuller descriptions below.
"""
),
vm.Graph(
figure=categorical_column(
gapminder.query("country == 'Nigeria' and year > 1970"),
y="gdpPercap",
x="year",
)
),
make_code_clipboard_from_py_file("time_column.py"),
],
)
area = vm.Page(
title="Area",
path="time/area",
layout=vm.Layout(grid=PAGE_GRID),
components=[
vm.Card(
text="""
#### What is an area chart?
An area chart displays data points over a continuous interval or time period, with the area between the line
and the axis filled in to emphasize the magnitude of the values.
 
#### When should I use it?
An area chart is ideal for showing trends over time and emphasizing the volume of data. Typically,
the y-axis represents a quantitative value, while the x-axis is marked with a timescale or sequence of
intervals. Area charts can also display negative values below the x-axis. If you need to compare multiple
data series in the same chart, try to limit yourself to 3-4 to maintain clarity and avoid clutter.
"""
),
vm.Graph(figure=px.area(stocks, x="date", y="GOOG")),
make_code_clipboard_from_py_file("area.py"),
],
)
connected_scatter = connected_scatter_factory("time")
column_and_line = column_and_line_factory("time")
stepped_line = vm.Page(
title="Stepped line",
path="time/stepped-line",
layout=vm.Layout(grid=PAGE_GRID),
components=[
vm.Card(
text="""
#### What is a stepped line chart?
A stepped line chart is much like a standard line chart but, instead of connecting two points with the
shortest line, the line forms a series of steps between data points.
 
#### When should I use it?
You should use a stepped line chart when you wish to draw attention to changes occurring at specific points.
By contrast, a line chart would suggest that changes occur gradually.
"""
),
vm.Graph(
figure=px.line(
data_frame=stepped_line_data,
x="year",
y="rate",
line_shape="vh",
),
),
make_code_clipboard_from_py_file("stepped_line.py"),
],
)
heatmap = vm.Page(
title="Heatmap",
path="time/heatmap",
layout=vm.Layout(grid=PAGE_GRID),
components=[
vm.Card(
text="""
#### What is a heatmap?
A heatmap chart depicts values for a main variable of interest across two axis variables as a grid of
colored squares. The color intensity of each cell represents the value of the main variable within a
specific range.
 
#### When should I use it?
Use a heatmap chart to visualize time patterns and identify trends between two variables.
Typically, the x-axis represents time intervals (e.g., hours, days, months), while the y-axis represents
categories or different variables. By observing color changes across the grid, you can easily spot
patterns and correlations.
"""
),
vm.Graph(figure=px.density_heatmap(tips, x="day", y="size", z="tip", histfunc="avg", text_auto="$.2f")),
make_code_clipboard_from_py_file("heatmap.py"),
],
)
pages = [line, column, area, connected_scatter, column_and_line, stepped_line, heatmap]