Description:
Add colors and handle multiple series.
Commit status:
[Not Reviewed]
References:
Diff options:
Comments:
0 Commit comments
0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
@@ -33,13 +33,28 | |||
|
33 | 33 | |
|
34 | 34 | public static Dictionary<string, IEnumerable<double>> data_sets = new Dictionary<string, IEnumerable<double>>(); |
|
35 | 35 | |
|
36 |
public static Dictionary< |
|
|
36 | public static Dictionary<string, bool> data_sets_show = new List<string>() | |
|
37 | 37 | .Concat(money_series) |
|
38 | 38 | .Concat(tree_series) |
|
39 | 39 | .Select(e => (e, false)) |
|
40 | 40 | .ToDictionary(t => t.Item1, t=> t.Item2); |
|
41 | 41 | |
|
42 | public static void DrawLine(ImDrawListPtr draw_list, Num.Vector2[] points) { | |
|
42 | ||
|
43 | public static uint[] colors = {0xFF000000, 0xFFFF0000, 0xFF00FF00, 0xFF0000FF, | |
|
44 | 0xFF999999, 0xFFAA0000, 0xFF00AA00, 0xFF0000AA, 0xFF000000 | |
|
45 | ||
|
46 | ||
|
47 | ||
|
48 | }; | |
|
49 | ||
|
50 | public static Dictionary<string, uint> data_sets_color = new List<string>() | |
|
51 | .Concat(money_series) | |
|
52 | .Concat(tree_series) | |
|
53 | .Zip(colors) | |
|
54 | .ToDictionary(t => t.Item1, t => t.Item2); | |
|
55 | ||
|
56 | ||
|
57 | public static void DrawLine(ImDrawListPtr draw_list, Num.Vector2[] points, uint col) { | |
|
43 | 58 | |
|
44 | 59 | var p = Num.Vector2.Zero;// ImGui.GetCursorScreenPos(); |
|
45 | 60 | |
@@ -52,7 +67,7 | |||
|
52 | 67 | } |
|
53 | 68 | |
|
54 | 69 | // uint col = 0b_1111_1111_1111_0000; |
|
55 | uint col = 0xFF000000; | |
|
70 | // uint col = 0xFF000000; | |
|
56 | 71 | |
|
57 | 72 | draw_list.AddPolyline(ref points[0], points.Length, col, ImDrawFlags.RoundCornersDefault, 1.0f); |
|
58 | 73 | |
@@ -204,23 +219,40 | |||
|
204 | 219 | |
|
205 | 220 | var draw_list = ImGui.GetWindowDrawList(); |
|
206 | 221 | |
|
222 | var domain_min = int.MaxValue; | |
|
223 | var domain_max = int.MinValue; | |
|
224 | foreach (var key in keys) | |
|
225 | { | |
|
207 | 226 | |
|
208 | var range = new Num.Vector2(200, 0); | |
|
227 | if (data_sets_show[key] && data_sets[key].Count() > 0) | |
|
228 | { | |
|
229 | domain_min = Math.Min(domain_min, (int)data_sets[key].Min()); | |
|
230 | domain_max = Math.Max(domain_max, (int)data_sets[key].Max()); | |
|
231 | } | |
|
232 | ||
|
233 | ||
|
234 | } | |
|
209 | 235 | |
|
210 | foreach (var key in keys) { | |
|
211 | var show = data_sets_show[key]; | |
|
212 | var data = data_sets[key]; | |
|
213 |
|
|
|
214 | // var data_array = datasets[key].Select((p) => Scale(domain, range, (int)p) ).Select((p,i) => new Num.Vector2(i*10, (int)p)).ToArray(); | |
|
215 | if (data.Count() > 0 && show) | |
|
216 |
|
|
|
236 | var padding = 10; | |
|
237 | ||
|
238 | var range = new Num.Vector2(200 - padding, 0 + padding); | |
|
239 | var domain = new Num.Vector2(domain_min, domain_max); | |
|
240 | ||
|
241 | foreach (var key in keys) | |
|
242 | { | |
|
243 | var show = data_sets_show[key]; | |
|
244 | var data = data_sets[key]; | |
|
245 | // var domain = new Num.Vector2((int)data.Min(), (int)data.Max()); | |
|
246 | // var data_array = datasets[key].Select((p) => Scale(domain, range, (int)p) ).Select((p,i) => new Num.Vector2(i*10, (int)p)).ToArray(); | |
|
247 | if (data.Count() > 0 && show) | |
|
248 | { | |
|
217 | 249 | // Logging.Spy(range); |
|
218 | 250 | // Logging.Spy(domain); |
|
219 | 251 | IEnumerable<int> data_array = data_sets[key].Select((p) => Scale(domain, range, (int)p)); |
|
220 | var data_array2 = data_array.Select((p, i) => new Num.Vector2(i * 10, p)).ToArray(); | |
|
221 |
|
|
|
222 | } | |
|
252 | var data_array2 = data_array.Select((p, i) => new Num.Vector2(i * 10 + padding, p)).ToArray(); | |
|
253 | DrawLine(draw_list, data_array2, data_sets_color[key]); | |
|
223 | 254 | } |
|
255 | } | |
|
224 | 256 | |
|
225 | 257 | ImGui.Dummy(new Num.Vector2(200, 200)); |
|
226 | 258 |
You need to be logged in to leave comments.
Login now