Plot Data as a Bar Plot

# sphinx_gallery_thumbnail_number = 3
import matplotlib.pyplot as plt
import pyam

Read in some example data

fname = 'data.csv'
df = pyam.IamDataFrame(fname, encoding='ISO-8859-1')
print(df.head())

Out:

model scenario  region       variable       unit  year      value
0  MESSAGE-GLOBIOM  SSP2-26  R5ASIA  Emissions|CO2  Mt CO2/yr  2005  10488.011
1  MESSAGE-GLOBIOM  SSP2-26  R5ASIA  Emissions|CO2  Mt CO2/yr  2010  13437.424
2  MESSAGE-GLOBIOM  SSP2-26  R5ASIA  Emissions|CO2  Mt CO2/yr  2020  15054.143
3  MESSAGE-GLOBIOM  SSP2-26  R5ASIA  Emissions|CO2  Mt CO2/yr  2030  12528.573
4  MESSAGE-GLOBIOM  SSP2-26  R5ASIA  Emissions|CO2  Mt CO2/yr  2040   9499.867

We generated a simple stacked bar chart as below

data = df.filter(variable='Emissions|CO2|*',
                 level=0,
                 region='World')

fig, ax = plt.subplots(figsize=(10, 10))
data.bar_plot(ax=ax, stacked=True)
fig.subplots_adjust(right=0.55)
plt.show()
../_images/sphx_glr_plot_bar_001.png

We can flip that round for a horizontal chart

fig, ax = plt.subplots(figsize=(10, 10))
data.bar_plot(ax=ax, stacked=True, orient='h')
fig.subplots_adjust(right=0.55)
plt.show()
../_images/sphx_glr_plot_bar_002.png

We don’t just have to plot variables, any data or metadata associated with the IamDataFrame can be used.

data = (df
        .filter(variable='Emissions|CO2')
        .filter(region='World', keep=False)
        )
fig, ax = plt.subplots(figsize=(10, 10))
data.bar_plot(ax=ax, bars='region', stacked=True, cmap='tab20')
plt.show()
../_images/sphx_glr_plot_bar_003.png

Total running time of the script: ( 0 minutes 0.306 seconds)

Gallery generated by Sphinx-Gallery