// Show training data on chart
private void ShowTrainingData()
{
double[][,] dataSeries = new double[classesCount][, ];
int[] indexes = new int[classesCount];
// allocate data arrays
for (int i = 0; i < classesCount; i++)
{
dataSeries[i] = new double[samplesPerClass[i], 2];
}
// fill data arrays
for (int i = 0; i < samples; i++)
{
// get sample's class
int dataClass = classes[i];
// copy data into appropriate array
dataSeries[dataClass][indexes[dataClass], 0] = data[i, 0];
dataSeries[dataClass][indexes[dataClass], 1] = data[i, 1];
indexes[dataClass]++;
}
// remove all previous data series from chart control
chart.RemoveAllDataSeries();
// add new data series
for (int i = 0; i < classesCount; i++)
{
string className = string.Format("class" + i);
// add data series
chart.AddDataSeries(className, dataSereisColors[i], Chart.SeriesType.Dots, 5);
chart.UpdateDataSeries(className, dataSeries[i]);
// add classifier
chart.AddDataSeries(string.Format("classifier" + i), Color.Gray, Chart.SeriesType.Line, 1, false);
}
}