Ejemplo n.º 1
0
 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;
     }
 }
Ejemplo n.º 2
0
        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;
                //}
            }
        }