Skip to content

Examples

Horizon Chart



    
    
    
        
            
        
        
    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            
    
    
    
    
    



























    
    

from rich.console import Console
from graphical.bar import Bar
from graphical.data import bands
from graphical.group import Horizontal, Vertical
from graphical.scale.chromatic.sequential import GREENS
from data import data_horizon as data_sets

levels = 4
colors = GREENS.palette(levels)
value_range = (
    min(d for data in data_sets for d in data),
    max(d for data in data_sets for d in data),
)

graph = Vertical(gap=1)
for data in data_sets:
    horizon = Horizontal()
    for level, value in bands(data, levels):
        horizon.append(
            Bar(
                value if level < levels else 0.0,
                (0, 1),
                length=9,
                orientation="vertical",
                color=colors[level] if level < levels else None,
                bgcolor=colors[level - 1] if level > 0 else None,
            )
        )
    graph.append(horizon)

console = Console()
console.print(graph)

Gantt Chart



    
    
    
        
            
        
        
    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            
    
    
    
    
    

















    
    

from rich.console import Console
from graphical.bar import RangeStack
from graphical.group import Vertical
from data import data_gantt as data

graph = Vertical(gap=1)
for start, stop, progress in data:
    length = stop - start
    graph.append(
        RangeStack(
            (start, length * progress, length * (1.0 - progress)),
            (0, 1),
            orientation="horizontal",
            colors=["purple", "red"],
        )
    )

console = Console()
console.print(graph)

Stacked Bar



    
    
    
        
            
        
        
    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            
    
    
    
    
    














    
    

from rich.console import Console
from graphical.bar import Stack
from graphical.group import Horizontal
from data import data_stacked as data

max_sum = max(sum(d) for d in data)

graph = Horizontal(gap=1)
for d in data[:34]:
    graph.append(
        Stack(
            d,
            (0, max_sum),
            orientation="vertical",
            width=2,
            length=15,
        )
    )

console = Console()
console.print(graph)

Stacked Area



    
    
    
        
            
        
        
    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            
    
    
    
    
    



















    
    

from rich.console import Console
from graphical.bar import Stack
from graphical.group import Horizontal
from data import data_stacked as data

max_sum = max(sum(d) for d in data)

graph = Horizontal()
for d in data:
    graph.append(
        Stack(
            d,
            (0, max_sum),
            orientation="vertical",
        )
    )

console = Console()
console.print(graph)

Streamgraph



    
    
    
        
            
        
        
    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            
    
    
    
    
    



















    
    

from rich.console import Console
from graphical.bar import Stack
from graphical.group import Horizontal
from data import data_stacked as data

max_sum = max(sum(d) for d in data)

graph = Horizontal()
for d in data:
    offset = (max_sum - sum(d)) / 2.0
    graph.append(
        Stack(
            d,
            (-offset, -offset + max_sum),
            orientation="vertical",
        )
    )

console = Console()
console.print(graph)

Heatmap



    
    
    
        
            
        
        
    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            
    
    
    
    
    




















    
    

from rich.console import Console
from graphical.group import Horizontal, Vertical
from graphical.heat import Heat
from graphical.scale.chromatic.sequential import VIRIDIS
from data import data_heatmap as data

value_range = (
    min(min(d) for d in data),
    max(max(d) for d in data),
)

graph = Vertical()
for data_line in data:
    line = Horizontal()
    for entry in data_line:
        line.append(
            Heat(
                data=entry,
                value_range=value_range,
                scheme=VIRIDIS,
                repeat_x=4,
                repeat_y=2,
            )
        )
    graph.append(line)

console = Console()
console.print(graph)

Density



    
    
    
        
            
        
        
    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            
    
    
    
    
    















    
    

from rich.console import Console
from graphical.data import pairs
from graphical.group import Horizontal, Vertical
from graphical.heat import Heat
from graphical.scale.chromatic.sequential import VIRIDIS
from data import data_density as data

value_range = (min(min(d) for d in data), max(max(d) for d in data))

graph = Vertical()
for pair in pairs(data):
    line = Horizontal()
    for entries in zip(*pair):
        line.append(
            Heat(
                data=entries,
                value_range=value_range,
                scheme=VIRIDIS,
                orientation="vertical",
            )
        )
    graph.append(line)

console = Console()
console.print(graph)

Ridgeline



    
    
    
        
            
        
        
    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            

    
            
    
    
    
    
    

▁▁▂▃▅▆▇▇▇▆▆▅▅▅▆▆▅▅▅▄▃▂▁
▁▂▄▅▆▇▇▆▄▁
▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▄▆▇▅▃▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂
▂▄▆▆▄▃▁
▂▂▂▂▂▂▂▂▂▂▂▂▂▃▃▃▄▄▅▆▇▁▁▁▁▂▃▃▃▃▃▂▁▇▆▅▄▄▃▃▃▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂
▁▃▄▆▇▇▆▅▃▂▁▁▂▄▅▆▇▇▆▄▃▂▁
▂▂▂▂▂▂▂▂▂▂▂▃▃▃▃▄▅▆▇▇▆▅▄▄▃▃▃▃▂▂▃▃▃▃▃▄▄▅▅▆▇▇▆▅▄▄▃▃▃▃▃▂▂▂▂▂▂▂
▁▃▅▆▇▆▄▃▁
▂▂▂▂▂▂▂▂▂▂▂▃▃▃▄▅▆▇▆▅▄▃▃▃▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂
▂▄▆▇▅▃▁
▂▂▂▂▂▂▂▂▂▂▂▂▃▃▄▅▆▇▅▄▃▃▃▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂
▁▂▃▄▅▆▇▇▇▆▆▅▄▃▂▁
▂▃▃▃▃▄▄▄▅▆▆▇▇▆▅▅▄▄▃▃▃▃▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂
▁▂▄▅▆▆▇▇▇▇▆▅▄▃▂▁
▂▂▂▂▂▂▃▃▃▄▄▅▅▆▇▇▆▅▄▄▃▃▃▃▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂
▂▃▄▅▆▇▇▇▇▆▅▄▂▄▆▇▇▇▆▅▄▃▂▂▂▂▃▄▄▄▅▅▅▅▅▅▅▄▄▃▂▁▃▄▅▅▄▃▂
▂▂▂▂▂▂▂▂▂▂▂▂▃▃▃▄▄▅▆▇▃▅▇▇▅▃▁▇▅▄▃▃▃▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂
▂▄▆▆▄▂
▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▃▃▄▄▅▆▆▅▄▄▃▃▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂

▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂

    
    

from rich.console import Console
from graphical.bar import Bar
from graphical.group import Horizontal
from graphical.layer import Layers
from graphical.offset import Offset
from graphical.scale.chromatic.sequential import VIRIDIS
from data import data_ridgeline as data

value_range = (0, max(max(d) for d in data))

colors = VIRIDIS.palette(10)
graph = Layers()
for idx, line_data in enumerate(data):
    line = Horizontal()
    for value in line_data:
        line.append(
            Bar(
                value,
                value_range,
                length=5,
                color=colors[idx],
                orientation="vertical",
            )
        )
    graph.append(Offset(line, 0, idx * 2))

console = Console()
console.print(graph)