public void CreateScatterplot(ZedGraphControl zgc, double[][] graph, int n)
{
GraphPane myPane = zgc.GraphPane;
myPane.CurveList.Clear();
// Set graph pane object
myPane.Title.Text = "Normal (Gaussian) Distributions";
myPane.XAxis.Title.Text = "X";
myPane.YAxis.Title.Text = "Y";
myPane.XAxis.Scale.Max = 10;
myPane.XAxis.Scale.Min = -10;
myPane.YAxis.Scale.Max = 10;
myPane.YAxis.Scale.Min = -10;
myPane.XAxis.IsAxisSegmentVisible = false;
myPane.YAxis.IsAxisSegmentVisible = false;
myPane.YAxis.IsVisible = false;
myPane.XAxis.IsVisible = false;
myPane.Border.IsVisible = false;
// Create mixture pairs
PointPairList list = new PointPairList();
for (int i = 0; i < graph.Length; i++)
list.Add(graph[i][0], graph[i][1]);
// Add the curve for the mixture points
LineItem myCurve = myPane.AddCurve("Mixture", list, Color.Gray, SymbolType.Diamond);
myCurve.Line.IsVisible = false;
myCurve.Symbol.Border.IsVisible = false;
myCurve.Symbol.Fill = new Fill(Color.Gray);
for (int i = 0; i < n; i++)
{
// Add curves for the clusters to be detected
Color color = colors[i];
myCurve = myPane.AddCurve("D" + (i + 1), new PointPairList(), color, SymbolType.Diamond);
myCurve.Line.IsVisible = false;
myCurve.Symbol.Border.IsVisible = false;
myCurve.Symbol.Fill = new Fill(color);
}
// Fill the background of the chart rect and pane
myPane.Fill = new Fill(Color.WhiteSmoke);
zgc.AxisChange();
zgc.Invalidate();
}