public void AddSerias(Double[] x, Double[] y, String AreaName, ChartAreaType AreaType, SeriesChartType type, Color color) { if (mainChart.ChartAreas.IsUniqueName(AreaName)) { CreateNewArea(x, y, AreaName, AreaType, type, color); } else { SetArea(x, y, AreaName, AreaType, type, color); } }
private void CreateNewArea(Double[] x, Double[] y, String AreaName, ChartAreaType AreaType, SeriesChartType type, Color color) { ChartArea chartArea = new ChartArea(AreaName); chartArea.AxisX.Minimum = x.Min(); chartArea.AxisX.Maximum = x.Max(); chartArea.AxisY.Minimum = y.Min(); chartArea.AxisY.Maximum = y.Max(); Series series = GetSeriesOf(x, y, AreaName, type, color); Title title = new Title(AreaName); title.DockedToChartArea = AreaName; title.IsDockedInsideChartArea = false; switch (AreaType) { case ChartAreaType.Linear: chartArea.AxisX.LabelStyle.Format = "{0.0e0}"; chartArea.AxisY.LabelStyle.Format = "{0.00}"; break; case ChartAreaType.LogX: chartArea.AxisX.IsLogarithmic = true; chartArea.AxisX.LabelStyle.Format = "{e0}"; chartArea.AxisY.LabelStyle.Format = "{0.00}"; break; case ChartAreaType.Polar: chartArea.AxisX.Minimum = 0; chartArea.AxisX.Maximum = 360; chartArea.AxisX.Interval = 30; chartArea.AxisX.Crossing = 90; chartArea.AxisY.Minimum = 0; chartArea.AxisY.Maximum = 1; chartArea.AxisY.Interval = 0.2; series.ChartType = SeriesChartType.Polar; break; default: break; } mainChart.Titles.Add(title); mainChart.Series.Add(series); mainChart.ChartAreas.Add(chartArea); }
private void SetArea(Double[] x, Double[] y, String AreaName, ChartAreaType AreaType, SeriesChartType type, Color color) { Axis X = mainChart.ChartAreas.FindByName(AreaName).AxisX; Axis Y = mainChart.ChartAreas.FindByName(AreaName).AxisY; Series series = GetSeriesOf(x, y, AreaName, type, color); switch (AreaType) { case ChartAreaType.Linear: X.Minimum = GetMin(X.Minimum, x.Min()); X.Maximum = GetMax(X.Maximum, x.Max()); Y.Minimum = GetMin(Y.Minimum, y.Min()); Y.Maximum = GetMax(Y.Maximum, y.Max()); break; case ChartAreaType.LogX: X.Minimum = GetMin(X.Minimum, x.Min()); X.Maximum = GetMax(X.Maximum, x.Max()); Y.Minimum = GetMin(Y.Minimum, y.Min()); Y.Maximum = GetMax(Y.Maximum, y.Max()); break; case ChartAreaType.Polar: series.MarkerSize = 6; series.ChartType = SeriesChartType.Polar; break; default: break; } mainChart.ChartAreas.FindByName(AreaName).AxisX = X; mainChart.ChartAreas.FindByName(AreaName).AxisY = Y; mainChart.Series.Add(series); }