mirror of
https://github.com/aykhans/AzSuicideDataVisualization.git
synced 2025-04-21 18:23:35 +00:00
40 lines
949 B
Python
40 lines
949 B
Python
"""
|
|
Stem and Leaf Plot
|
|
------------------
|
|
This example shows how to make a stem and leaf plot.
|
|
"""
|
|
# category: other charts
|
|
import altair as alt
|
|
import pandas as pd
|
|
import numpy as np
|
|
np.random.seed(42)
|
|
|
|
# Generating random data
|
|
source = pd.DataFrame({'samples': np.random.normal(50, 15, 100).astype(int).astype(str)})
|
|
|
|
# Splitting stem and leaf
|
|
source['stem'] = source['samples'].str[:-1]
|
|
source['leaf'] = source['samples'].str[-1]
|
|
|
|
source = source.sort_values(by=['stem', 'leaf'])
|
|
|
|
# Determining leaf position
|
|
source['position'] = source.groupby('stem').cumcount().add(1)
|
|
|
|
# Creating stem and leaf plot
|
|
alt.Chart(source).mark_text(
|
|
align='left',
|
|
baseline='middle',
|
|
dx=-5
|
|
).encode(
|
|
alt.X('position:Q', title='',
|
|
axis=alt.Axis(ticks=False, labels=False, grid=False)
|
|
),
|
|
alt.Y('stem:N', title='', axis=alt.Axis(tickSize=0)),
|
|
text='leaf:N',
|
|
).configure_axis(
|
|
labelFontSize=20
|
|
).configure_text(
|
|
fontSize=20
|
|
)
|