Hist#

import hvplot.pandas  # noqa

# hvplot.extension("matplotlib")

hist is often a good way to start looking at continuous data to get a sense of the distribution. Similar methods include kde (also available as density).

from bokeh.sampledata.autompg import autompg_clean

autompg_clean.sample(n=5)
mpg cyl displ hp weight accel yr origin name mfr
355 30.7 6 145.0 76 3160 19.6 81 Europe volvo diesel volvo
174 19.0 6 232.0 90 3211 17.0 75 North America amc pacer amc
125 19.0 6 232.0 100 2901 16.0 74 North America amc hornet amc
153 15.0 6 250.0 72 3158 19.5 75 North America ford maverick ford
69 13.0 8 400.0 190 4422 12.5 72 North America chrysler newport royal chrysler
autompg_clean.hvplot.hist("weight")

When using by the plots are overlaid by default. To create subplots instead, use subplots=True.

autompg_clean.hvplot.hist("weight", by="origin", subplots=True, width=250)

You can also plot histograms of datetime data

import pandas as pd
from bokeh.sampledata.commits import data as commits

commits = commits.reset_index().sort_values("datetime")
commits.head(3)
datetime day time
4915 2012-12-29 11:57:50-06:00 Sat 11:57:50
4914 2013-01-02 17:46:43-06:00 Wed 17:46:43
4913 2013-01-03 16:28:49-06:00 Thu 16:28:49
commits.hvplot.hist(
    "datetime",
    bin_range=(pd.Timestamp('2012-11-30'), pd.Timestamp('2017-05-01')),
    bins=54,   
)

If you want to plot the distribution of a categorical column you can calculate the distribution using Pandas’ method value_counts and plot it using .hvplot.bar.

autompg_clean["mfr"].value_counts().hvplot.bar(invert=True, flip_yaxis=True, height=500)
This web page was generated from a Jupyter notebook and not all interactivity will work on this website.