35 lines
806 B
Python
35 lines
806 B
Python
|
"""
|
||
|
Histogram with Responsive Bins
|
||
|
------------------------------
|
||
|
This shows an example of a histogram with bins that are responsive to a
|
||
|
selection domain. Click and drag on the bottom panel to see the bins
|
||
|
change on the top panel.
|
||
|
"""
|
||
|
# category: histograms
|
||
|
import altair as alt
|
||
|
from vega_datasets import data
|
||
|
|
||
|
source = data.flights_5k.url
|
||
|
|
||
|
brush = alt.selection_interval(encodings=['x'])
|
||
|
|
||
|
base = alt.Chart(source).transform_calculate(
|
||
|
time="hours(datum.date) + minutes(datum.date) / 60"
|
||
|
).mark_bar().encode(
|
||
|
y='count():Q'
|
||
|
).properties(
|
||
|
width=600,
|
||
|
height=100
|
||
|
)
|
||
|
|
||
|
alt.vconcat(
|
||
|
base.encode(
|
||
|
alt.X('time:Q',
|
||
|
bin=alt.Bin(maxbins=30, extent=brush),
|
||
|
scale=alt.Scale(domain=brush)
|
||
|
)
|
||
|
),
|
||
|
base.encode(
|
||
|
alt.X('time:Q', bin=alt.Bin(maxbins=30)),
|
||
|
).add_selection(brush)
|
||
|
)
|