Scrollable viewport¶
A unit view keeps its row height while the outer container provides a vertical viewport for a longer categorical list.
Code¶
"""Scrollable viewport.
A unit view keeps its row height while the outer container provides a vertical
viewport for a longer categorical list.
"""
import genome_spy as gs
from genome_spy.datasets._grammar import sincos_data
# Load example positions, one for each row.
data = sincos_data()
# Plot a sine value on each row.
chart = (
gs.Chart(data)
.transform_formula(expr=gs.expr.sin(gs.datum.x / 4), as_="value")
.mark_point(size=55)
.encode(
x=gs.X("value:Q").scale(zoom=True).title("Value"),
y=gs.Y("x:O").title("Row"),
)
# Keep rows 20 pixels tall and scroll when they do not all fit.
.properties(
height=gs.step(20),
viewportHeight="container",
title="Scrollable viewport",
)
.with_view(stroke="lightgray")
)