public DisplayForm(Dictionary <Range, double> data, string title, string xName, string yName) { InitializeComponent(); //Вывод таблицы SetupDataSource <Range, double>(data, xName, yName); setupForm(title, xName, yName); //Рисуем график var plotter = new HistogramPlotter(graph); plotter.Plot(data, Color.FromArgb(255, 39, 174, 96)); }
///////////////////////////// ПОСТРОЙКА ГРАФИКОВ //////////////////////////////// //Строит график ряда //Для дискретного распределения строится только полигон относительных частот //Для непрерывного - гистограмма, а на ее фоне - полигон, но деленый на ширину интервала void draw_emp_graph(ZedGraphControl graph, AbstractDistribution distr) { if (distr.DistributionType == DistributionType.DISCRETE) { draw_distribution(graph, distr.Distribution.GroupRelFreq); } else { //Непрерывное //Гистограмма HistogramPlotter plotter = new HistogramPlotter(graph); plotter.Plot(distr.Distribution.IntervalRelFreq, Color.FromArgb(30, 230, 126, 34)); //Полигон double interval = 1; var points = new PointPairList(); for (int i = 0; i < distr.Distribution.GroupRelFreq.Count; i++) { var val = distr.Distribution.GroupRelFreq.ElementAt(i); if (i < distr.Distribution.GroupRelFreq.Count - 1) { interval = distr.Distribution.GroupRelFreq.ElementAt(i + 1).Key - val.Key; } points.Add(val.Key, val.Value / interval); } var pane = graph.GraphPane; var curve = pane.AddCurve("", points, Color.FromArgb(255, 39, 174, 96), SymbolType.Default); graph.AxisChange(); graph.Invalidate(); } }