Ejemplo n.º 1
0
        public DataTable GetXYData(DataTable mydt)         //, string xvar, string yvar, string mytitle, Color mycolor, string colorsby)
        {
            List <string> othervars = new List <string>();

            if (_settings.colorvar != "none")
            {
                othervars.Add(_settings.colorvar);
            }
            if (_settings.panevar != "none")
            {
                othervars.Add(_settings.panevar);
            }

            othervars = othervars.Distinct().ToList();
            othervars.Remove(null);

            DataTable dataxy = DataTableExtensions.SelectColumnXY(mydt, _settings.xaxisvar, _settings.yaxisvar, othervars);

            if (dataxy.Rows.Count > 0)
            {
                _corrs = new Corrs(dataxy, _settings.xaxisvar, _settings.yaxisvar, _settings.digits_corr);
                Jitter(dataxy, _settings.xaxisvar, _settings.yaxisvar);
            }
            return(dataxy);
        }
Ejemplo n.º 2
0
        //public ScatterplotSeries(DataTable dt, string xvar, string yvar, string colorvar, string panelvar, List<Color> colors, List<string> color_levels)
        //{
        //	CreateSeries(dt, xvar, yvar, colorvar, panelvar, colors, color_levels);
        //}


        private void CreateSeries(DataTable dt, DxScatterplotSettings settings)         //, string xvar, string yvar, string colorvar, string panelvar, List<Color> colors, List<string> color_levels)
        {
            _list_corrs          = new List <Corrs>();
            _list_dxseriespoints = new List <DxSeriesPoints>();

            //, settings.xaxisvar, settings.yaxisvar, settings.colorvar, settings.panevar, settings.colors, settings.colorLevels);

            List <string> groupvars    = new List <string>();
            int           panename_idx = -1;

            if (settings.panevar == "none" & settings.colorvar != "none")                //This is different than for Bar
            {
                groupvars = new List <string>()
                {
                    settings.colorvar
                };
                panename_idx = 0;
            }
            else if (settings.panevar != "none" & settings.colorvar == "none")
            {
                groupvars = new List <string>()
                {
                    settings.panevar
                };
                panename_idx = 0;
            }
            else if (settings.panevar != "none" & settings.colorvar != "none")
            {
                groupvars = new List <string>()
                {
                    settings.panevar, settings.colorvar
                };
                panename_idx = 0;
            }

            groupvars = groupvars.Distinct().ToList();

            List <DxSeriesPoints> list_series = new List <DxSeriesPoints>();

            try
            {
                // from: http://www.scriptscoop.net/t/7516b362c821/c-c-linq-how-to-build-group-by-clause-dynamically.html
                IEnumerable <string> columnsToGroupBy = groupvars;
                var groups = dt.AsEnumerable()
                             .GroupBy(r => new NTuple <object>(from column in columnsToGroupBy select r[column]));

                int n_groups = groups.Count();
                foreach (var group in groups)
                {
                    DataTable dtSub = group.CopyToDataTable();

                    Corrs tmpcorrs = new Corrs(dtSub, settings.xaxisvar, settings.yaxisvar, 2);



                    _list_corrs.Add(tmpcorrs);

                    //List<string> keyvalues = group.Key.Values[0].ToString();
                    List <string> keyvalues = new List <string>();
                    foreach (var s in group.Key.Values)
                    {
                        keyvalues.Add(s.ToString());
                    }


                    DxSeriesPoints pts = new DxSeriesPoints(dtSub, settings.xaxisvar, settings.yaxisvar, settings.colorvar, settings.colors, settings.colorLevels);

                    pts.label = String.Join(" : ", keyvalues);

                    pts.panename = (panename_idx >= 0) ? keyvalues[panename_idx] : "none";

                    _list_dxseriespoints.Add(pts);
                }
            }
            catch (Exception ex)
            {
                throw new Exception("ERROR! qryGroupBy  Msg:" + ex.Message + "............." + ex.StackTrace.ToString());
            }


            //return list_series;
        }