public void AssignSeriesToPane(ScatterplotSeries scatseries, List <string> panenames) { foreach (string p in panenames) { // check whether series should be added to this pane. for (int i = 0; i < chart.Series.Count; i++) { if (scatseries.list_dxseriespoints[i].panename == p) { XYDiagramSeriesViewBase view = (XYDiagramSeriesViewBase)chart.Series[i].View; view.Pane = xydiagram.Panes[p]; } } xydiagram.DefaultPane.Visibility = ChartElementVisibility.Hidden; } }
protected void ConstructScatterplot(DataTable dataxy) { if (_settings.colorvar != "none") { _settings.colorLevels = dataxy.AsEnumerable().Select(x => x.Field <string>(_settings.colorvar)).Distinct().ToList(); } if (_settings.panevar != "none") { _settings.paneLevels = dataxy.AsEnumerable().Select(x => x.Field <string>(_settings.panevar)).Distinct().ToList(); } ScatterplotSeries scatseries = new ScatterplotSeries(dataxy, _settings); //.xaxisvar, _settings.yaxisvar, _settings.colorvar, _settings.panevar, _settings.colors, _colorLevels); subtitles = scatseries.Subtitles(); foreach (string s in subtitles) { Debug.WriteLine(s); } int regcounter = 0; foreach (DxSeriesPoints sp in scatseries.list_dxseriespoints) { Series s = new Series(); PointSeriesView pointSeriesView = new PointSeriesView(); s.Points.AddRange(sp.seriesPoints); s.View = pointSeriesView; s.ToolTipPointPattern = "{HINT} x={A:F2} y={V:F2}"; if (_settings.useMovAvg) { SimpleMovingAverage sma = new SimpleMovingAverage(); sma.PointsCount = _settings._movavgNumPts;; // Convert.ToInt32(txtPtsCount.Text); sma.Color = sp.seriesPoints[0].Color; sma.LineStyle.DashStyle = DashStyle.Dash; HSLColor hsl = new HSLColor(); sma.Color = hsl.Darken(sp.seriesPoints[0].Color, .9, _settings.reglineAlpha); ((PointSeriesView)s.View).Indicators.Add(sma); } if (_settings.showregline) { RegressionLine regline = new RegressionLine(); HSLColor hsl = new HSLColor(); regline.LineStyle.Thickness = 4; regline.Color = hsl.Darken(sp.seriesPoints[0].Color, .9, _settings.reglineAlpha); regline.CrosshairTextOptions.TextColor = Color.Lime; //regline.CrosshairTextOptions. ((PointSeriesView)s.View).Indicators.Add(regline); } regcounter++; chart.Series.Add(s); } //Legend if (_settings.colorvar != "none" & dataxy.ContainsColumnName(_settings.colorvar)) { LegendByColorLevels(_settings.colors, _settings.colorLevels); } if (_settings.colorvar != "none" & _settings.panevar != "none") { xydiagram.Panes.Clear(); Debug.WriteLine(String.Format("***************************** After CLEAR # of Panes: {0}", xydiagram.Panes.Count)); MakePanes(_settings.paneLevels, subtitles); AssignSeriesToPane(scatseries, _settings.paneLevels); } else if (_settings.colorvar == "none" & _settings.panevar != "none") { xydiagram.Panes.Clear(); Debug.WriteLine(String.Format("***************************** After CLEAR # of Panes: {0}", xydiagram.Panes.Count)); MakePanes(_settings.paneLevels, subtitles); AssignSeriesToPane(scatseries, _settings.paneLevels); } else if (_settings.colorvar != "none") { //xydiagram.Panes.Clear(); //Debug.WriteLine(String.Format("***************************** After CLEAR # of Panes: {0}", xydiagram.Panes.Count)); //MakePanes(_settings.colorLevels, subtitles); //AssignSeriesToPane(scatseries, _settings.colorLevels); } //No Additional Panes else { //for (int i = 0; i < chart.Series.Count; i++) //{ // XYDiagramSeriesViewBase view = (XYDiagramSeriesViewBase)chart.Series[i].View; // view.Pane = xydiagram.DefaultPane; //} } }