49 lines
1.3 KiB
Python
49 lines
1.3 KiB
Python
from openpyxl import Workbook
|
|
from openpyxl.chart import LineChart, Reference, Series
|
|
|
|
wb = Workbook()
|
|
ws = wb.active
|
|
ws.title = "Simulation"
|
|
|
|
gewicht_werte = [50, 65, 80]
|
|
r_frauen = 0.68
|
|
promille_stufen = [0.5, 1.0, 1.5, 2.0]
|
|
alkohol_pro_ball_g = 0.2
|
|
balls_per_pack = 18
|
|
preis_pro_pack = 6.5
|
|
|
|
ws.append(["Promille"] + [f"Kugeln ({g}kg Frau)" for g in gewicht_werte] + ["Kosten (€)"])
|
|
|
|
for p in promille_stufen:
|
|
row = [p]
|
|
for g in gewicht_werte:
|
|
alk = p * g * r_frauen
|
|
kugeln = round(alk / alkohol_pro_ball_g)
|
|
row.append(kugeln)
|
|
|
|
kosten = round((row[2] / balls_per_pack) * preis_pro_pack, 2)
|
|
row.append(kosten)
|
|
ws.append(row)
|
|
|
|
chart = LineChart()
|
|
chart.title = "Rumkugel-Bedarf vs. Promille"
|
|
chart.style = 13
|
|
chart.y_axis.title = "Anzahl Rumkugeln"
|
|
chart.x_axis.title = "Promille"
|
|
|
|
data = Reference(ws, min_col=2, max_col=4, min_row=1, max_row=len(promille_stufen)+1)
|
|
cats = Reference(ws, min_col=1, min_row=2, max_row=len(promille_stufen)+1)
|
|
chart.add_data(data, titles_from_data=True)
|
|
chart.set_categories(cats)
|
|
|
|
s2 = LineChart()
|
|
data_kosten = Reference(ws, min_col=5, max_col=5, min_row=1, max_row=len(promille_stufen)+1)
|
|
s2.add_data(data_kosten, titles_from_data=True)
|
|
s2.y_axis.axId = 200
|
|
s2.y_axis.title = "Kosten (€)"
|
|
s2.y_axis.crosses = "max"
|
|
|
|
chart += s2
|
|
|
|
ws.add_chart(chart, "G2")
|
|
wb.save("rum_kugel_fix.xlsx") |