Original file (SVG file, nominally 960 × 480 pixels, file size: 31 KB)
This is a file from the
Wikimedia Commons. Information from its
description page there is shown below. Commons is a freely licensed media file repository. You can help. |
DescriptionAnnual world electricity net generation.svg |
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 | This plot was created with
Matplotlib. This file is
translated using SVG switch elements: all translations are stored in the same file. |
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.251, 2.669, 7.005 ],
2020, 15.835, 2.596, 7.491 ],
2021, 16.833, 2.698, 7.802
# please update in future.
years = np.array([row0 for row in years_fossil_nuclear_renew])
fossil = np.array([row1][0 for row in years_fossil_nuclear_renew])
nuclear = np.array([row1][1 for row in years_fossil_nuclear_renew])
renew = np.array([row1][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(years0], 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.nsmapNone + "}"
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:
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 new updates being mirrored, please upload the required version as a separate file. |
Click on a date/time to view the file as it appeared at that time.
Date/Time | Thumbnail | Dimensions | User | Comment | |
---|---|---|---|---|---|
current | 11:46, 7 March 2024 | 960 × 480 (31 KB) | Geek3 | update until 2021 | |
18:42, 14 February 2021 | 960 × 480 (29 KB) | Geek3 | Uploaded own work with UploadWizard |
This file contains additional information, probably added from the digital camera or scanner used to create or digitize it.
If the file has been modified from its original state, some details may not fully reflect the modified file.
Width | 768pt |
---|---|
Height | 384pt |