Распределения. График ч.7
Описание: построение графика с использованием данных по числам с определенным законом распределения.
На все полученные данные в виде таблице в форме “frmResult” можно наложить линейный график. Для этого необходимо прочесть статью по добавлению библиотеки с графиков в проект и создать под это дело одну форму “frmGraph”. Код этой формы примерно должен совпадать с кодом в листинге 1, а кнопка “btGraph” в форме вывода результатов должна открывать эту форму.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Text;
using System.Windows.Forms;
using Chart2DLib; //Подключаем библиотеку
namespace Законы_распределения
{
public partial class frmGraph : Form
{
private Распределения.SwitchOn sOn;
private DataSeries ds; // для коллекции графиков
public frmGraph(Распределения.SwitchOn sOn)
{
InitializeComponent();
this.sOn = sOn;
//Настойи
chart2D1.Dock = DockStyle.Fill;
chart2D1.C2ChartArea.ChartBackColor = Color.White;
ds = new DataSeries();
chart2D1.C2Legend.IsLegendVisible = true;
//Запускаем процедуру
AddData();
}
private void AddData()
{
//Все эти настроки можно сделать через визуальный редактор
//Visual Studio. Необходимо только данные о точках
// Програмно присваиваем свофства для графика
chart2D1.C2XAxis.XLimMin = 0f;
chart2D1.C2XAxis.XLimMax = (float)sOn._enVal._Ntb;
chart2D1.C2YAxis.YLimMin = 0f;
chart2D1.C2YAxis.YLimMax = sOn._ouVal._maxfFR;
chart2D1.C2XAxis.XTick = 1.0f;
chart2D1.C2YAxis.YTick = chart2D1.C2YAxis.YLimMax / (float)sOn._enVal._Ntb;
chart2D1.C2Label.XLabel = "This is X axis";
chart2D1.C2Label.YLabel = "This is Y axis";
chart2D1.C2Title.Title = "Построение графиков";
chart2D1.C2DataCollection.DataSeriesList.Clear();
// Добавляем точки графиков первой линии
ds = new DataSeries();
ds.LineStyle.LineColor = Color.Red;
ds.LineStyle.Thickness = 2f;
ds.LineStyle.Pattern = DashStyle.Dash;
ds.LineStyle.PlotMethod =
LineStyle.PlotLinesMethodEnum.Lines;
ds.SeriesName = "П";
ds.SymbolStyle.SymbolType =
SymbolStyle.SymbolTypeEnum.Diamond;
ds.SymbolStyle.BorderColor = Color.Red;
ds.SymbolStyle.FillColor = Color.Yellow;
ds.SymbolStyle.BorderThickness = 1f;
for (int i = 0; i < sOn._enVal._Ntb; i++)
{
ds.AddPoint(new PointF((float)i+1f, (float)sOn._ouVal._arTable[i, 4]));
}
chart2D1.C2DataCollection.Add(ds);
// Добавляем точки графиков второй линии
ds = new DataSeries();
ds.LineStyle.LineColor = Color.Blue;
ds.LineStyle.Thickness = 1f;
ds.LineStyle.Pattern = DashStyle.Solid;
ds.LineStyle.PlotMethod =
LineStyle.PlotLinesMethodEnum.Splines;
ds.SeriesName = "Т";
ds.SymbolStyle.SymbolType =
SymbolStyle.SymbolTypeEnum.Triangle;
ds.SymbolStyle.BorderColor = Color.Blue;
for (int i = 0; i < 7; i++)
{
ds.AddPoint(new PointF((float)i + 1f, (float)sOn._ouVal._arTable[i, 5]));
}
chart2D1.C2DataCollection.Add(ds);
}
}
}