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 | |
---|---|---|---|---|---|---|---|---|---|---|
205 | 20.0 | 4 | 130.0 | 102 | 3150 | 15.7 | 76 | Europe | volvo 245 | volvo |
230 | 16.0 | 8 | 351.0 | 149 | 4335 | 14.5 | 77 | North America | ford thunderbird | ford |
283 | 17.0 | 8 | 305.0 | 130 | 3840 | 15.4 | 79 | North America | chevrolet caprice classic | chevrolet |
76 | 22.0 | 4 | 121.0 | 76 | 2511 | 18.0 | 72 | Europe | volkswagen 411 (sw) | volkswagen |
162 | 21.0 | 6 | 231.0 | 110 | 3039 | 15.0 | 75 | North America | buick skyhawk | buick |
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.