コード例 #1
0
        private void RecalculateInternalDataset()
        {
            if (sharedFixedVariables == null)
            {
                return;
            }

            var factorValues = new List <string>(variableValues);

            var variables = sharedFixedVariables.VariableNames.ToList();
            var values    = new List <IList>();

            foreach (var varName in variables)
            {
                if (varName == FreeVariable)
                {
                    values.Add(factorValues);
                }
                else if (sharedFixedVariables.VariableHasType <double>(varName))
                {
                    values.Add(Enumerable.Repeat(sharedFixedVariables.GetDoubleValue(varName, 0), factorValues.Count).ToList());
                }
                else if (sharedFixedVariables.VariableHasType <string>(varName))
                {
                    values.Add(Enumerable.Repeat(sharedFixedVariables.GetStringValue(varName, 0), factorValues.Count).ToList());
                }
            }

            internalDataset = new ModifiableDataset(variables, values);
        }
コード例 #2
0
        private void RecalculateInternalDataset()
        {
            if (sharedFixedVariables == null)
            {
                return;
            }

            // we expand the range in order to get nice tick intervals on the x axis
            double xmin, xmax, xinterval;

            //guard if only one distinct value is present
            if (trainingMin.IsAlmost(trainingMax))
            {
                ChartUtil.CalculateAxisInterval(trainingMin - 0.5, trainingMin + 0.5, XAxisTicks, out xmin, out xmax, out xinterval);
            }
            else
            {
                ChartUtil.CalculateAxisInterval(trainingMin, trainingMax, XAxisTicks, out xmin, out xmax, out xinterval);
            }

            if (FixedXAxisMin.HasValue)
            {
                xmin = FixedXAxisMin.Value;
            }
            if (FixedXAxisMax.HasValue)
            {
                xmax = FixedXAxisMax.Value;
            }
            double step = (xmax - xmin) / drawingSteps;

            var xvalues = new List <double>();

            for (int i = 0; i < drawingSteps; i++)
            {
                xvalues.Add(xmin + i * step);
            }

            if (sharedFixedVariables == null)
            {
                return;
            }

            var variables = sharedFixedVariables.VariableNames.ToList();
            var values    = new List <IList>();

            foreach (var varName in variables)
            {
                if (varName == FreeVariable)
                {
                    values.Add(xvalues);
                }
                else if (sharedFixedVariables.VariableHasType <double>(varName))
                {
                    values.Add(Enumerable.Repeat(sharedFixedVariables.GetDoubleValue(varName, 0), xvalues.Count).ToList());
                }
                else if (sharedFixedVariables.VariableHasType <string>(varName))
                {
                    values.Add(Enumerable.Repeat(sharedFixedVariables.GetStringValue(varName, 0), xvalues.Count).ToList());
                }
            }

            internalDataset = new ModifiableDataset(variables, values);
        }