Matplotlib & alltägliche Kaufentscheidungen
Übersicht
Ergebnis
Nicht abgebildet
Überlegungen
Frage: Lohnt es sich für mich, einen neue(re)n Kühlschrank zu kaufen?
Antwort: Keine Ahnung.
Lösung: Die Frage in zwei "kleinere" Fragen überführen, hier:

Frage 1: Was kostet mich mein alter Kühlschrank?
Frage 2: Was kostet mich ein neuer(er) Kühlschrank?

Antwort zu Frage 1: Mein alter Kühlschranks kostet mich vorallem, was er im Jahr an Strom verbraucht.
Antwort zu Frage 2: Ein neuer(er) Kühlschrank kostet mich - zukünftig - was er jährlich an Strom verbraucht, plus Kaufpreis.

Annahme: Wenn die zukünftigen Kosten eines neuen Kühlschranks geringer sind als die zukünftigen Kosten des alten Kühlschranks, dann lohnt sich der Kauf eines neuen Kühlschranks für mich.
Formalisierungen
Die "zukünftigen Kosten des alten Kühlschranks" lassen sich errechnen mittels:

Kosten(alt) = Stromverbrauch in kWh pro Jahr * Strompreis pro kWh * Betriebszeit in Jahren

Für die Formel "zukünftiger Kosten eines neuen Kühlschranks" müsste nur der Kaufpreis hinzugefügt werden, wenn nicht das Problem geplanten Obsoleszenz wäre: Da neue Kühlschränke alle x Jahre kaputtgehen, müssen alle x Jahre neue Kühlschränke gekauft werden. Diese Neukäufe zähle ich zu "zukünftige Kosten eines neuen Kühlschranks". Die Kostenformel für neue Kühlschränke sieht dann wie folgt aus: Kosten(neu) = Kaufpreis * Kauffrequenz + Stromverbrauch in kWh pro Jahr * Strompreis pro kWh * Betriebszeit in Jahren
Datenerhebung
Den "Stromverbrauch in kWh pro Jahr" alter Kühlschränke erhält man bspw., indem man für einige Monate einen Stromzähler an diese anschließt und den angezeigten Stromverbrauch dann auf ein Jahr hochrechnet.
Den "Strompreis pro kWh" erhält man z.B. von Briefen der Stromanbieter.
Die - zukünftige - "Betriebszeit in Jahren" kann auf jeden Wert größer Null gesetzt werden, hier: 21.

"Kaufpreis" und "Stromverbrauch in kWh pro Jahr" neuer Kühlschränke sollten auf deren Verpackungen, Produktbeschreibungen etc. stehen.
Die "Kauffrequenz" neuer Kühlschränke ist Spekulation, vom schlimmsten anzunehmenden Szenario - alle zwei Jahre, direkt nach Ablauf der Garantie - bis hin zu optimistischeren.
Operationalisierung in/mit Matplotlib
Inhalt einer "datei_mit_skript.py":
from matplotlib import pyplot as plt
import numpy as np

plt.style.use('dark_background')
# matplotlib.org/stable/gallery/style_sheets/dark_background.html
# [2022-12-20]

# x = Betriebszeit in Jahren
x = np.arange(0, 21, 1)  # von a, bis b, c werte

"""
 Kauffrequenz
 Hier dargestellt als (Liste der) Geräteanzahl,
 die man zu Zeitpunkt x gekauft hat.
 21 jahre; 2-11,  käufe
"""
k2 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11]
k4 = [1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6]
k6 = [1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4]
k8 = [1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3]
kX = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3]
kX2 = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2]

# konvertiere Liste zu "array"
kf2 = np.array(k2)
kf4 = np.array(k4)
kf6 = np.array(k6)
kf8 = np.array(k8)
kfX = np.array(kX)
kfX2 = np.array(kX2)

# kostenfunktionen:
a = 774 * 0.308 * x
# den Alten behalten (kein Kaufpreis weil schon da)
b2 = 539 * kf2[x] + 263 * 0.308 * x  # alle 2 Jahre
b4 = 539 * kf4[x] + 263 * 0.308 * x  # alle 4 Jahre
b6 = 539 * kf6[x] + 263 * 0.308 * x  # alle 6 Jahre
b8 = 539 * kf8[x] + 263 * 0.308 * x  # alle 8 Jahre
bX = 539 * kfX[x] + 263 * 0.308 * x  # alle 10 Jahre
bX2 = 539 * kfX2[x] + 263 * 0.308 * x # alle 12 Jahre

# Graphen anlegen
plt.plot(x, a, label='alten behalten')
plt.plot(x, b2,  label='alle 2 Jahre')  # , marker="o"
plt.plot(x, b4,  label='alle 4 Jahre', marker="*")
plt.plot(x, b6,  label='alle 6 Jahre', marker="x")
# plt.plot(x, b8,  label='alle 8 Jahre', marker=3)
# plt.plot(x, bX, label='alle 10 Jahre', marker=4)
plt.plot(x, bX2,  label='alle 12 Jahre')

# Beschriftung der Achsen und des Titels
plt.xlabel('Zeit in Jahren')
plt.ylabel('Kosten in Euro')
plt.title('Dengleichen Kühlschrank alle x Jahre neu kaufen')
plt.legend()

# plt.savefig("path/to/file")  # ggfs. als Datei speichern.
# Grafik anzeigen
plt.show()
Generierung
Im Terminal mittels "python datei_mit_skript.py" Ergebnisse generieren.