germany-energy-sources.txt contains data on the renewable sources of electricity produced in Germany from 1990 to 2013:
Renewable electricity generation in Germany in GWh (million kWh) Year Hydro Wind Biomass Photovoltaics 2013 21200 49800 47800 29300 2012 21793 50670 43350 26380 2011 17671 48883 37603 19559 ...
The program below plots these data as a stacked bar chart, using Matplotlib's hatch patterns to distinguish between the different sources.
import numpy as np import matplotlib.pyplot as plt data = np.loadtxt('germany-energy-sources.txt', skiprows=2, dtype='f8') years = data[:,0] n = len(years) # GWh to TWh data[:,1:] /= 1000 fig = plt.figure() ax = fig.add_subplot(111) sources = ('Hydroelectric', 'Wind', 'Biomass', 'Photovoltaics') hatch = ['oo', '', 'xxxx', '//'] bottom = np.zeros(n) bars = [None]*n for i, source in enumerate(sources): bars[i] = ax.bar(years, bottom=bottom, height=data[:,i+1], color='w', hatch=hatch[i], align='center', edgecolor='k') bottom += data[:,i+1] ax.set_xticks(years) plt.xticks(rotation=90) ax.set_xlim(1989, 2014) ax.set_ylabel('Renewable Electricity (TWh)') ax.set_title('Renewable Electricity Generation in Germany, 1990-2013') plt.legend(bars, sources, loc='best') plt.show()
To include a legend, each bar chart object must be stored in a list,
bars, which is passed to the
ax.legend method with a corresponding sequence of labels,