diff --git a/isometric-park-fna/UI/Graph.cs b/isometric-park-fna/UI/Graph.cs --- a/isometric-park-fna/UI/Graph.cs +++ b/isometric-park-fna/UI/Graph.cs @@ -32,7 +32,10 @@ public static Dictionary data_sets_show = new Dictionary { {"Total Funds", false}, {"Subsidies", false}, - {"Upkeep", false}}; + {"Upkeep", false}, + {"Contracts", false}, + {"Cashflow", false}, + {"Misc", false}}; public static void Render(ImFontPtr font, Simulation sim, ImGuiWindowBridgeEngine engine) { @@ -60,6 +63,9 @@ data_sets["Total Funds"] = sim.allBudgets().Select(b => (double)b.money); data_sets["Subsidies"] = sim.allBudgets().Select(b => (double)b.subsidy); data_sets["Upkeep"] = sim.allBudgets().Select(b => (double)b.upkeep); + data_sets["Contracts"] = sim.allBudgets().Select(b => (double)b.contracts); + data_sets["Misc"] = sim.allBudgets().Select(b => (double)b.misc); + data_sets["Cashflow"] = sim.allBudgets().Select(b => (double)b.cashflow); var periods = 12.0d * GraphWindow.year; var keys = data_sets_show.Keys.ToList(); @@ -67,6 +73,7 @@ var totals = data_sets["Total Funds"]; var max = 0.0d; + var min = 0.0d; foreach( var key in keys) { if (data_sets_show[key] && totals.Count() > 0) { @@ -75,7 +82,15 @@ } } - ImPlot.SetNextPlotLimits(totals.Count()-periods, totals.Count(), 0.0d, max , ImGuiCond.Always); + foreach( var key in keys) { + if (data_sets_show[key] && totals.Count() > 0) { + var series_min = data_sets[key].Min(); + series_min = series_min >= 0? series_min * 0.90f : series_min *1.10f; + min = Math.Min(series_min, min); + } + } + + ImPlot.SetNextPlotLimits(totals.Count()-periods, totals.Count(), min, max , ImGuiCond.Always); if( ImPlot.BeginPlot("My Plot")) { // Span totals = new Span(new double[]{0.0, 1.0, 2.0, 9.0}); foreach (var key in keys) {