public void AddSeries(IEnumerable <KeyValuePair <K, V> > points, SeriesChartType seriesChartType, string legendName = null) { UnalignedSeries.Add(new UnalignedPoints { Points = points, SeriesChartType = seriesChartType, LegendName = legendName }); }
private void Paint(bool needAlign) { if (needAlign) { IEnumerable <K> finalList = new List <K>(); UnalignedSeries.ForEach(a => finalList = a.Points.Select(x => x.Key).ToList().Union(finalList)); foreach (var item in UnalignedSeries) { var series = new Series(); Chart.Series.Add(series); series.ChartType = item.SeriesChartType; if (!string.IsNullOrEmpty(item.LegendName)) { Chart.Legends.Add(new Legend(item.LegendName) { DockedToChartArea = "Default", Name = item.LegendName }); series.Legend = item.LegendName; series.LegendText = item.LegendName + " " + item.Points.Count(); series.IsVisibleInLegend = true; } foreach (var xPoint in finalList) { var yPoint = item.Points.SingleOrDefault(x => xPoint.Equals(x.Key)).Value; series.Points.AddXY(xPoint, yPoint); Console.WriteLine("point: " + xPoint + "," + yPoint); } } } else { foreach (var item in UnalignedSeries) { var series = new Series(); Chart.Series.Add(series); series.ChartType = item.SeriesChartType; //series.Label = "#PERCENT"; //series.IsValueShownAsLabel = true; //series.LegendText = "#AXISLABEL"; if (!string.IsNullOrEmpty(item.LegendName)) { Chart.Legends.Add(new Legend(item.LegendName) { DockedToChartArea = "Default", Name = item.LegendName }); series.Legend = item.LegendName; series.LegendText = item.LegendName + " " + item.Points.Count(); series.IsVisibleInLegend = true; } else { Chart.Legends.Add(new Legend(item.LegendName) { DockedToChartArea = "Default", Name = item.LegendName, Docking = Docking.Bottom }); } foreach (var point in item.Points) { series.Points.AddXY(point.Key, point.Value); Console.WriteLine("point: " + point.Key + "," + point.Value); } } } }