public void LoadPlotData(List <ProtocolEvent> eventList) { Plot.Model.Series.Clear(); List <CategoryNode> nodes = CategoryNode.BuildTrees(eventList); if (nodes != null) { List <IntervalBarSeries> allSeries; List <string> labels; List <double> gridLines; CategoryNode.GeneratePlotData(nodes, out allSeries, out labels, out gridLines); // GENERATE LABELS, GRIDLINES, ETC. FROM TREE! VerticalCategoryAxis.Labels.Clear(); VerticalCategoryAxis.Labels.AddRange(labels); VerticalCategoryAxis.ExtraGridlines = gridLines.ToArray(); foreach (IntervalBarSeries series in allSeries) { Plot.Model.Series.Add(series); } } Plot.ResetAllAxes(); HorizontalTimeAxis.Minimum = HorizontalTimeAxis.AbsoluteMinimum; VerticalCategoryAxis.AbsoluteMaximum = VerticalCategoryAxis.ExtraGridlines.Max() + 0.6f; VerticalCategoryAxis.MaximumRange = VerticalCategoryAxis.AbsoluteMaximum - VerticalCategoryAxis.AbsoluteMinimum; VerticalCategoryAxis.MinimumRange = VerticalCategoryAxis.AbsoluteMaximum - VerticalCategoryAxis.AbsoluteMinimum; Plot.Model.InvalidatePlot(true); }