コード例 #1
0
 public void AddSeries(IEnumerable <KeyValuePair <K, V> > points, SeriesChartType seriesChartType, string legendName = null)
 {
     UnalignedSeries.Add(new UnalignedPoints
     {
         Points          = points,
         SeriesChartType = seriesChartType,
         LegendName      = legendName
     });
 }
コード例 #2
0
        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);
                    }
                }
            }
        }