Plot Data as a Bar Plot with Net Value LinesΒΆ

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

from pyam.plotting import add_net_values_to_bar_plot

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
9   MESSAGE-GLOBIOM  SSP2-26  R5ASIA  Emissions|CO2  Mt CO2/yr  2005  10488.011
15  MESSAGE-GLOBIOM  SSP2-26   R5LAM  Emissions|CO2  Mt CO2/yr  2005   5086.483
12  MESSAGE-GLOBIOM  SSP2-26   R5MAF  Emissions|CO2  Mt CO2/yr  2005   4474.073
3   MESSAGE-GLOBIOM  SSP2-26  R5OECD  Emissions|CO2  Mt CO2/yr  2005  14486.522
6   MESSAGE-GLOBIOM  SSP2-26   R5REF  Emissions|CO2  Mt CO2/yr  2005   2742.073

We generated a simple stacked bar chart as below

data = df.filter({'variable': 'Emissions|CO2|*',
                  'level': 0,
                  'region': 'World',
                  'year': [2040, 2050, 2060]})

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

Sometimes stacked bar charts have negative entries - in that case it helps to add a line showing the net value.

data = df.filter({'variable': 'Emissions|CO2|*',
                  'level': 0,
                  'region': 'World',
                  'year': [2040, 2050, 2060]})

fig, ax = plt.subplots(figsize=(6, 6))
data.bar_plot(ax=ax, stacked=True)
add_net_values_to_bar_plot(ax, color='k')
fig.subplots_adjust(right=0.55)
plt.show()
../_images/sphx_glr_plot_bar_with_net_lines_002.png

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

Gallery generated by Sphinx-Gallery