import pandas as pd
from lets_plot import *
from lets_plot.mapping import as_discrete
LetsPlot.setup_html()
DRAW_QUANTILES = [.25, .5, .75]
def plot_matrix(plots=[], width=400, height=300, columns=2):
bunch = GGBunch()
for i in range(len(plots)):
row = int(i / columns)
column = i % columns
bunch.add_plot(plots[i], column * width, row * height, width, height)
return bunch.show()
mpg_df = pd.read_csv("https://raw.githubusercontent.com/JetBrains/lets-plot-docs/master/data/mpg.csv")
mpg_df.head()
ggplot(mpg_df, aes(y='hwy')) + geom_violin() + ggtitle("Simplest example")
p_d = ggplot(mpg_df) + \
geom_density(aes(x='hwy', fill='drv'), color='black', alpha=.5) + \
facet_grid(x='drv') + \
coord_flip() + \
ggtitle("geom_density()")
p_v = ggplot(mpg_df, aes(x=as_discrete('drv', order=1), y='hwy')) + \
geom_violin(aes(fill='drv'), alpha=.5) + \
ggtitle("geom_violin()")
plot_matrix([p_d, p_v])
draw_quantiles
¶tests = [
{'draw_quantiles': None},
{'draw_quantiles': []},
{'draw_quantiles': [.05, .5, .95]},
{'draw_quantiles': [.25]},
{'draw_quantiles': [0, .5, 1]},
]
plot_matrix([
ggplot(mpg_df, aes('drv', 'hwy')) + \
geom_violin(draw_quantiles=test['draw_quantiles']) + \
ggtitle("draw_quantiles={0}".format(test['draw_quantiles']))
for test in tests
])
scale
¶tests = [
{'scale': None},
{'scale': 'area'},
{'scale': 'count'},
{'scale': 'width'},
]
plot_matrix([
ggplot(mpg_df, aes('drv', 'hwy')) + \
geom_violin(scale=test['scale'], \
draw_quantiles=DRAW_QUANTILES) + \
ggtitle("scale={0}".format(test['scale']))
for test in tests
])
p = ggplot(mpg_df, aes('drv', 'hwy'))
p_default = p + geom_violin(draw_quantiles=DRAW_QUANTILES) + ggtitle("Default")
p_kernel = p + geom_violin(draw_quantiles=DRAW_QUANTILES, kernel='epanechikov') + ggtitle("kernel='epanechikov'")
p_bw = p + geom_violin(draw_quantiles=DRAW_QUANTILES, bw=.1) + ggtitle("bw=0.1")
p_adjust = p + geom_violin(draw_quantiles=DRAW_QUANTILES, adjust=2) + ggtitle("adjust=2")
plot_matrix([p_default, p_kernel, p_bw, p_adjust])
ggplot(mpg_df, aes(x='drv', y='hwy')) + \
geom_violin(aes(group='year', fill=as_discrete('year')), \
draw_quantiles=DRAW_QUANTILES, \
tooltips=layer_tooltips().line('^x')
.line('year|@year')
.line('hwy|@hwy')
.line('violinwidth|@..violinwidth..')
.line('density|@..density..')
.line('count|@..count..')
.line('scaled|@..scaled..')) + \
ggtitle("Grouping and tooltips")