Bar Charts
%matplotlib notebook
import matplotlib.pyplot as plt
import numpy as np
linear_data = np.array([1,2,3,4,5,6,7,8])
exponential_data = linear_data**2
plt.figure()
xvals = range(8)
plt.bar(xvals,
linear_data,
width = 0.3,
color='blue');
<IPython.core.display.Javascript object>
In order to make room for a side-by-side bar chart, for each original x-value, add a constant amount of space. Alignment of x-axis labels is one of the more cumbersome aspects of matplotlib.
Further, adding dates as x-axis labels must be completed manually. And, there is not an obvious way to plot several series of data in groups across time, for example.
new_xvals = []
for item in xvals:
new_xvals.append(item+0.3)
plt.bar(new_xvals,
exponential_data,
width = 0.3,
color='red');
Error bars can be added to the y-axis.
plt.figure()
from random import randint
linear_err = [randint(0,5) for x in range(len(linear_data))]
plt.bar(xvals,
linear_data,
width = 0.3,
color='orange',
yerr=linear_err);
<IPython.core.display.Javascript object>
Stacked bar charts can be made by specifying the bottom
attributes.
plt.figure()
xvals = range(len(linear_data))
plt.bar(xvals,
linear_data,
width = 0.3,
color='b')
plt.bar(xvals,
exponential_data,
width = 0.3,
bottom=linear_data,
color='r');
<IPython.core.display.Javascript object>
Finally, horizontal bar charts can be made using barh
instead of bar
. Note that what had been the width
parameter becomes the height
parameter, and bottom
becomes left
.
plt.figure()
xvals = range(8)
plt.barh(xvals,
linear_data,
height = 0.3,
color='b')
plt.barh(xvals,
exponential_data,
height = 0.3,
left=linear_data,
color='r');
<IPython.core.display.Javascript object>
These notes were taken from the Coursera course Applied Plotting, Charting & Data Representation in Python. The information is presented by Christopher Brooks, PhD, a Research Assistant Professor at the University of Michigan.