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")