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
147 24.0 4 120.0 97 2489 15.0 74 Asia honda civic honda
361 17.6 6 225.0 85 3465 16.6 81 North America chrysler lebaron salon chrysler
291 31.9 4 89.0 71 1925 14.0 79 Europe vw rabbit custom volkswagen
182 25.0 4 140.0 92 2572 14.9 76 North America capri ii capri
376 34.0 4 108.0 70 2245 16.9 82 Asia toyota corolla toyota
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.