File:Electricity in France.svg

Summary

Description
English: Electricity production in France. Data from EIA.
Source Own work
Author Theanphibian
Other versions

Derivative works of this file:

SVG development
InfoField
Source code
InfoField

Python code

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

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

# data source: https://www.eia.gov/international/data/country/FRA/electricity/electricity-generation
years_hydro_nuclear_fossil_renew = [
[1980, [68.253, 63.424, 117.986, 1.122] ],
[1981, [70.358, 99.235, 91.393, 1.228] ],
[1982, [68.6, 102.627, 91.954, 1.644] ],
[1983, [67.515, 135.988, 75.848, 1.256] ],
[1984, [64.01, 180.47, 60.961, 1.455] ],
[1985, [60.248, 211.192, 52.251, 1.322] ],
[1986, [60.953, 239.558, 40.547, 1.403] ],
[1987, [68.623, 249.265, 37.363, 1.418] ],
[1988, [73.952, 260.287, 35.742, 1.388] ],
[1989, [45.744, 288.715, 48.492, 2.039] ],
[1990, [52.796, 298.377, 44.291, 2.203] ],
[1991, [56.277, 314.773, 56.721, 2.397] ],
[1992, [68.313, 321.523, 47.222, 2.437] ],
[1993, [64.3, 349.779, 32.276, 2.298] ],
[1994, [78.057, 341.982, 31.382, 2.494] ],
[1995, [72.196, 358.37, 35.791, 2.767] ],
[1996, [64.43, 377.473, 40.343, 2.954] ],
[1997, [63.151, 375.709, 36.181, 3.3] ],
[1998, [61.479, 368.591, 50.702, 3.314] ],
[1999, [71.832, 374.532, 46.275, 3.779] ],
[2000, [66.466, 394.404, 46.5667, 4.216] ],
[2001, [73.888, 400.018, 42.3047, 4.996] ],
[2002, [59.992, 414.922, 48.0594, 5.389] ],
[2003, [58.567, 419.017, 52.3862, 5.808] ],
[2004, [59.276, 425.829, 51.5233, 6.15] ],
[2005, [50.965, 431.18, 57.9971, 6.47] ],
[2006, [55.741, 429.82, 51.9792, 7.61] ],
[2007, [57.029, 420.129, 52.9662, 10.382] ],
[2008, [63.017, 419.8, 50.9245, 12.265] ],
[2009, [56.428, 391.753, 46.3834, 14.919] ],
[2010, [61.945, 410.086, 52.2602, 17.641] ],
[2011, [45.184, 423.509, 53.7906, 22.977] ],
[2012, [59.099, 407.438, 50.9132, 28.306] ],
[2013, [71.042, 403.7, 48.0481, 30.278] ],
[2014, [62.993, 418.001, 31.4007, 33.041] ],
[2015, [54.876, 419.022, 39.8128, 39.224] ],
[2016, [60.094, 386.453, 50.9358, 41.095] ],
[2017, [49.389, 381.846, 58.9211, 45.725] ],
[2018, [64.485, 393.2, 44.4009, 51.149] ],
[2019, [56.9824, 382.403, 48.0932, 61.6045] ] ,
[2020, [63, 335, 47, 65] ] ,
[2021, [60, 361, 48, 65] ] ,
[2022, [45, 279, 59, 71] ] ,
[2023, [56, 321, 40, 87] ] 
]
# please update in future.
years = [row[0] for row in years_hydro_nuclear_fossil_renew]
hydro = [row[1][0] for row in years_hydro_nuclear_fossil_renew]
nuclear = [row[1][1] for row in years_hydro_nuclear_fossil_renew]
fossil = [row[1][2] for row in years_hydro_nuclear_fossil_renew]
renew = [row[1][3] for row in years_hydro_nuclear_fossil_renew]

fname = "Electricity in France.svg"
labels = {'title': {"en":"Electricity production in France",
        "de":"Stromerzeugung in Frankreich",
        "fr":"Production d'électricité en France",
        "es":"Producción de electricidad en Francia"},
    "hydro":{"en":"Hydroelectric          ", "de":"Wasserkraft",
        "fr":"Hydroélectricité", "es":"Hidroeléctrica"},
    "nuclear":{"en":"Nuclear", "de":"Nuklear", "fr":"Nucléaire",
        "es":"Nuclear"},
    "fossil":{"en":"Fossil", "de":"Fossiler Kohlenstoff",
        "fr":"Carbone fossile", "es":"Carbono fósil"},
    "renew":{"en":"Renewable", "de":"Erneuerbar", "fr":"Renouvelable",
        "es":"Renovable"} }

plt.rcParams.update({'text.usetex':False, "svg.fonttype":"none", "font.size":13})
fig = plt.figure(figsize=(680 / 90.0, 450 / 90.0), dpi=72)
plt.stackplot(years, hydro, nuclear, fossil, renew, ec='k', lw=0.5,
    colors=['#0072B2', '#F0E442', '#D55E00', '#009E73'],
    labels=[labels["hydro"]["en"], labels["nuclear"]["en"],
    labels["fossil"]["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, 600)
plt.ylabel('TWh')
plt.title(labels["title"]["en"], fontweight='bold')
plt.grid(True)
hand, lab = plt.gca().get_legend_handles_labels()
plt.gca().legend(hand[::-1], lab[::-1], loc='upper left', borderaxespad=0.6)
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()
for label, values in labels.items():
    for el in svg.findall(".//{" + svg.nsmap[None] + "}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

Public domain I, the copyright holder of this work, release this work into the public domain. This applies worldwide.
In some countries this may not be legally possible; if so:
I grant anyone the right to use this work for any purpose, without any conditions, unless such conditions are required by law.
Category:Self-published work#Electricity%20in%20France.svgCategory:PD-self#Electricity%20in%20France.svg Category:Electricity production trends in France Category:SVG diagrams 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:Charts showing data through 2023 Category:Electricity production trends in France Category:Files allowed to be overwritten by everyone Category:Files that need updating annually Category:Files with derivative versions Category:PD-self Category:SVG diagrams Category:Self-published work Category:Valid SVG created with Matplotlib code