File: density_stack.py

package info (click to toggle)
python-altair 5.0.1-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 6,952 kB
  • sloc: python: 25,649; sh: 14; makefile: 6
file content (35 lines) | stat: -rw-r--r-- 1,026 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
"""
Stacked Density Estimates
-------------------------
To plot a stacked graph of estimates, use a shared ``extent`` and a fixed
number of subdivision ``steps`` to ensure that the points for each area align
well.  Density estimates of measurements for each iris flower feature are plot
in a stacked method.  In addition, setting ``counts`` to true multiplies the
densities by the number of data points in each group, preserving proportional
differences.
"""
# category: distributions

import altair as alt
from vega_datasets import data

source = data.iris()

alt.Chart(source).transform_fold(
    ['petalWidth', 
     'petalLength', 
     'sepalWidth', 
     'sepalLength'], 
    as_ = ['Measurement_type', 'value']
).transform_density(
    density='value', 
    bandwidth=0.3, 
    groupby=['Measurement_type'], 
    extent= [0, 8], 
    counts = True, 
    steps=200
).mark_area().encode(
    alt.X('value:Q'), 
    alt.Y('density:Q', stack='zero'),
    alt.Color('Measurement_type:N')
).properties(width=400, height=100)