From 45a0db597925777ffaa08f58089eca36382edddc Mon Sep 17 00:00:00 2001 From: Hanif Bin Ariffin Date: Mon, 26 Aug 2019 19:52:08 -0400 Subject: [PATCH] Demo: PlotLine example displays the average value. (#2759) + extra comments --- imgui_demo.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/imgui_demo.cpp b/imgui_demo.cpp index b2b7a7e450ae..04214437ec59 100644 --- a/imgui_demo.cpp +++ b/imgui_demo.cpp @@ -1043,6 +1043,8 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + // Plot/Graph widgets are currently fairly limited. + // Consider writing your own plotting widget, or using a third-party one (see "Wiki->Useful Widgets", or github.com/ocornut/imgui/issues/2747) if (ImGui::TreeNode("Plots Widgets")) { static bool animate = true; @@ -1066,7 +1068,18 @@ static void ShowDemoWindowWidgets() phase += 0.10f*values_offset; refresh_time += 1.0f/60.0f; } - ImGui::PlotLines("Lines", values, IM_ARRAYSIZE(values), values_offset, "avg 0.0", -1.0f, 1.0f, ImVec2(0,80)); + + // Plots can display overlay texts + // (in this example, we will display an average value) + { + float average = 0.0f; + for (int n = 0; n < IM_ARRAYSIZE(values); n++) + average += values[n]; + average /= (float)IM_ARRAYSIZE(values); + char overlay[32]; + sprintf(overlay, "avg %f", average); + ImGui::PlotLines("Lines", values, IM_ARRAYSIZE(values), values_offset, overlay, -1.0f, 1.0f, ImVec2(0,80)); + } ImGui::PlotHistogram("Histogram", arr, IM_ARRAYSIZE(arr), 0, NULL, 0.0f, 1.0f, ImVec2(0,80)); // Use functions to generate output