Drawing barplots¶
The incenp.plotting.bar
module provides a barplot
function
intended to facilitate the creation of bar plots from multi-indexed data.
The module uses the same notion of tracks and subtracks as the
incenp.plotting.scatter
module.
Sample data¶
Let’s create a multi-indexed DataFrame which we will use in the examples below:
index = pd.MultiIndex.from_arrays([
['foo'] * 2 + ['bar'] * 2 + ['baz'] * 2 + ['qux'] * 2,
['one', 'two'] * 4
],
names=['first', 'second']
)
df = pd.DataFrame(np.random.randint(0, 100, size=(8,2)),
index = index, columns=['A', 'B'])
This creates a DataFrame with 2 columns (A
and B
) and 8
rows, indexed in two levels (level first
, with 4 distinct values
foo
, bar
, baz
, and qux
; and level second
, with 2
distinct values one
and two
).
Quick start¶
Here is a quick example illustrating the main points of the barplot
function (ax
is supposed to be a matplotlib.axes.Axes object):
barplot(ax, df, column='A',
tracks=['foo', 'bar', 'bax'],
subtracks=['one', 'two'], subtrackname='second',
ncolumn='B')
ax.legend(['one', 'two'], loc='upper center')

A sample bar plot.¶
The column
parameter indicates which column in the DataFrame
contains the value to plot. The tracks
and subtracks
parameters
are used to select and distribute the rows along the tracks and
subtracks, in a similar way to the scatterplot
function of the
incenp.plotting.scatter
module.
The ncolumn
parameter, if included, indicates which column in the
DataFrame contains the number of samples, to be displayed on top of
every bar.