File:Annual world electricity net generation.svg

Summary

Description
English: Annual electricity net generation in the world since 1980. Multilingual file. May be updated in future, using the source code below.
Date
Source Own work, https://www.eia.gov/international/data/world/electricity/electricity-generation
Author Geek3
SVG development
InfoField
Source code
InfoField

Python code

#! /usr/bin/env python3
# -*- coding:utf8 -*-

from copy import deepcopy
import numpy as np
from lxml import etree
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker

# data source: https://www.eia.gov/international/data/world/electricity/electricity-generation
years_fossil_nuclear_renew = [
[1980, [5.5891, 0.6844, 1.7539] ],
[1981, [5.5258, 0.7786, 1.7794] ],
[1982, [5.5636, 0.8664, 1.8332] ],
[1983, [5.7030, 0.9817, 1.9181] ],
[1984, [5.9130, 1.1969, 1.9855] ],
[1985, [6.0409, 1.4255, 2.0062] ],
[1986, [6.1013, 1.5177, 2.0512] ],
[1987, [6.3962, 1.6540, 2.0613] ],
[1988, [6.6097, 1.7948, 2.1406] ],
[1989, [7.0517, 1.8434, 2.1773] ],
[1990, [7.1363, 1.9088, 2.2785] ],
[1991, [7.2382, 1.9961, 2.3280] ],
[1992, [7.2813, 2.0156, 2.3452] ],
[1993, [7.3594, 2.0816, 2.4760] ],
[1994, [7.5609, 2.1252, 2.5069] ],
[1995, [7.7875, 2.2100, 2.6320] ],
[1996, [8.0477, 2.2915, 2.6745] ],
[1997, [8.3266, 2.2713, 2.7449] ],
[1998, [8.6168, 2.3160, 2.7621] ],
[1999, [8.8243, 2.3931, 2.8191] ],
[2000, [9.3399, 2.4499, 2.8948] ],
[2001, [9.5661, 2.5169, 2.8556] ],
[2002, [9.9863, 2.5456, 2.9244] ],
[2003, [10.5108, 2.5177, 2.9619] ],
[2004, [10.9670, 2.6189, 3.1710] ],
[2005, [11.4492, 2.6250, 3.3304] ],
[2006, [11.9643, 2.6598, 3.4734] ],
[2007, [12.7698, 2.6080, 3.5741] ],
[2008, [12.8587, 2.5973, 3.7778] ],
[2009, [12.6853, 2.5600, 3.9250] ],
[2010, [13.6207, 2.6297, 4.2373] ],
[2011, [14.2404, 2.5177, 4.4501] ],
[2012, [14.5490, 2.3448, 4.7659] ],
[2013, [14.8978, 2.3642, 5.0993] ],
[2014, [15.0247, 2.4089, 5.3332] ],
[2015, [15.2056, 2.4405, 5.5535] ],
[2016, [15.4309, 2.4688, 5.9660] ],
[2017, [15.948, 2.517, 6.266] ],
[2018, [16.304, 2.570, 6.681] ],
[2019, [16.790, 2.677, 7.066] ],
[2020, [16.415, 2.593, 7.557] ],
[2021, [17.270, 2.697, 7.981] ],
[2022, [17.412, 2.594, 8.630] ],
[2023, [17.498, 2.666, 9.004] ]
]
# please update in future.
years = np.array([row[0] for row in years_fossil_nuclear_renew])
fossil = np.array([row[1][0] for row in years_fossil_nuclear_renew])
nuclear = np.array([row[1][1] for row in years_fossil_nuclear_renew])
renew = np.array([row[1][2] for row in years_fossil_nuclear_renew])

fname = "Annual world electricity net generation.svg"
labels = {'title': {"en":"Annual Electricity Net Generation in the World",
    "de":"Weltweite jährliche Netto-Stromerzeugung",
    "fr":"Production annuelle nette d'électricité dans le monde",
    "nl":"Elektriciteitsopwekking per jaar in de wereld",
    "pl":"Roczna światowa produkcja energii elektrycznej netto",
    "ru":"Годовая чистая выработка электроэнергии в мире"},
    "fossil":{"en":"Fossil carbon           ", "de":"Fossiler Kohlenstoff",
    "fr":"Carbone fossile", "nl":"Fossiele koolstof",
    "pl":"paliwa kopalne (węgiel/gaz ziemny/ropa naftowa)", "ru":"ископаемый углерод"},
    "nuclear":{"en":"Nuclear", "de":"Nuklear", "fr":"Nucléaire",
    "nl":"Nucleair", "pl":"elektrownie jądrowe", "ru":"атомная"},
    "renew":{"en":"Renewable", "de":"Erneuerbar", "fr":"Renouvelable",
    "nl":"Duurzaam", "pl":"źródła odnawialne", "ru":"возобновляемый"} }

plt.rcParams.update({'text.usetex':False, "svg.fonttype":"none", "font.size":14})
fig = plt.figure(figsize=(960 / 90.0, 480 / 90.0), dpi=72)
plt.stackplot(years, fossil, nuclear, renew, ec='k', lw=0.5,
    colors=['#aa7700', '#e5dd00', '#00aa00'],
    labels=[labels["fossil"]["en"], labels["nuclear"]["en"], labels["renew"]["en"]])
plt.gca().xaxis.set_major_locator(ticker.MultipleLocator(10))
plt.gca().xaxis.set_minor_locator(ticker.MultipleLocator(1))
plt.xlim(years[0], years[-1])
plt.ylim(0)
plt.ylabel('PWh')
plt.title(labels["title"]["en"], fontweight='bold')
plt.grid(True)
plt.gca().legend(loc='upper left', framealpha=1, borderaxespad=2)
plt.tight_layout()
plt.savefig(fname)

# create multilingual labels with the svg switch element
with open(fname, "r") as svgfile:
    svg = etree.parse(svgfile, etree.XMLParser()).getroot()
nsmap = "{" + svg.nsmap[None] + "}"
for label, values in labels.items():
    for el in svg.findall('.//' + nsmap + 'text'):
        if el.text == values["en"]:
            switch = etree.SubElement(el.getparent(), "switch")
            for lang, text in values.items():
                el2 = deepcopy(el)
                el2.set("systemLanguage", lang)
                el2.text = text
                switch.append(el2)
            switch.append(el)
#with open(fname, "w") as svgfile:
with open(fname, mode='w', encoding='utf-8') as svgfile:
    svgfile.write(etree.tostring(svg, pretty_print=True, encoding="unicode"))
This file may be updated to reflect new information. If you wish to use a specific version of the file without it being overwritten, please upload the required version as a separate file.
Category:Files that need updating annually

Licensing

I, the copyright holder of this work, hereby publish it under the following license:
w:en:Creative Commons
attribution share alike
This file is licensed under the Creative Commons Attribution-Share Alike 4.0 International license.
You are free:
  • to share – to copy, distribute and transmit the work
  • to remix – to adapt the work
Under the following conditions:
  • attribution – You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
  • share alike – If you remix, transform, or build upon the material, you must distribute your contributions under the same or compatible license as the original.
Category:CC-BY-SA-4.0#Annual%20world%20electricity%20net%20generation.svgCategory:Self-published work
Category:Global electricity production trends Category:Photos by User:Geek3 Category:Charts showing data through 2023
Any autoconfirmed user can overwrite this file from the same source. Please ensure that overwrites comply with the guideline. Category:Files allowed to be overwritten by everyone
Category:CC-BY-SA-4.0 Category:Charts showing data through 2023 Category:Files allowed to be overwritten by everyone Category:Files that need updating annually Category:Global electricity production trends Category:Photos by User:Geek3 Category:Self-published work Category:Translation possible - SVG (switch) Category:Valid SVG created with Matplotlib code