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 | Category:Valid SVG created with Matplotlib code#Annual%20world%20electricity%20net%20generation.svg switch elements: all translations are stored in the same file. |
| Source code | 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. |
Licensing
I, the copyright holder of this work, hereby publish it under the following license:
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
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