Esempio n. 1
0
    /*
     * PUBLIC METHODS
     */

    ///<summary>Assigns variables to graph and calculates other initial values. Called in Tab Init</summary>
    public void Init(
        TabContinuous1Var parentTab,
        string grUnitName, string grValueFormat, int grNumSigFigs, string grTitle,
        float grInitMinValue, float grInitMaxValue, bool grAutoYAxis, bool grYHasMetricFormat,
        bool limitGrPointNum, int maxGrPointNum, bool grHasPointConnectLine,
        Color grPointColor, Color grPointConnectLineColor)
    {
        // set all variables from the tab
        tab              = parentTab;
        unitName         = grUnitName;
        valueFormat      = grValueFormat;
        numSigFigs       = grNumSigFigs;
        title            = grTitle;
        initialMinValue  = grInitMinValue;
        initialMaxValue  = grInitMaxValue;
        yAxisIsAuto      = grAutoYAxis;
        yHasMetricFormat = grYHasMetricFormat;
        limitPointNum    = limitGrPointNum;
        // ensure a minimum of 3 values on x axis
        if (maxGrPointNum < 3)
        {
            maxGrPointNum = 3;
        }
        maxPointNum         = maxGrPointNum;
        hasPointConnectLine = grHasPointConnectLine;

        // Create and initialize the Graphing Asset graph, initialize formatting and appearance
        InitAxisGraphObjects(graphFormatting);

        // instantiate object for managing Y Axis minimum, maximum and labels.
        yAutoFuncts = new AxisAutoFunctions(unitIsMetric: yHasMetricFormat);

        // set appearance variables to appearance object
        SetAppearance(grPointColor, grPointConnectLineColor);

        // get y raw section number (using height) and use to process max, min, num ticks, metric prefix
        yAutoFuncts.SetParams(initialMinValue, initialMaxValue, GetYRawSectNum());

        // graph formatting is set and applied to graph
        SetGraphFormatting();

        // set axis labellers to ones accounting for metric units and significant figures
        graph.yAxis.axisLabelLabeler = CustomYAxisLabelLabeler;
        graph.xAxis.axisLabelLabeler = CustomXAxisLabelLabeler;

        // set y axis title offset to not overlap the labels
        ResetYAxisTitleOffset(graphFormatting);

        // x axis maximum tick value
        SetXSectNumAtIntervalIncrease();
        //Debug.Log("x sect num at increase: "+ xSectNumAtIntervalIncrease);
    }
Esempio n. 2
0
    /*
     * PUBLIC METHODS
     */

    ///<summary>Assigns variables to graph and calculates other initial values. Called in Tab Init</summary>
    public void Init(
        TabContinuous2Var parentTab,
        string grTitle, string grXAxisTitle, string grYAxisTitle,
        string grXUnitName, string grYUnitName, string grXValueFormat, string grYValueFormat,
        Vector2Int grNumSigFigs, Vector2 grInitMinValues, Vector2 grInitMaxValues,
        bool grAutoXAxis, bool grAutoYAxis, bool grXHasMetricFormat, bool grYHasMetricFormat,
        bool grHasPointConnectLine, bool grHasLineOfBestFit,
        Color grLineOfBestFitColor, Color grPointColor, Color grPointConnectLineColor)
    {
        // set all variables from the tab
        tab                 = parentTab;
        title               = grTitle;
        xAxisTitle          = grXAxisTitle;
        yAxisTitle          = grYAxisTitle;
        xUnitName           = grXUnitName;
        yUnitName           = grYUnitName;
        xValueFormat        = grXValueFormat;
        yValueFormat        = grYValueFormat;
        numSigFigs          = grNumSigFigs;
        initialMinValues    = grInitMinValues;
        initialMaxValues    = grInitMaxValues;
        xAxisIsAuto         = grAutoXAxis;
        yAxisIsAuto         = grAutoYAxis;
        xHasMetricFormat    = grXHasMetricFormat;
        yHasMetricFormat    = grYHasMetricFormat;
        hasPointConnectLine = grHasPointConnectLine;
        hasLineOfBestFit    = grHasLineOfBestFit;
        lineOfBestFitColor  = grLineOfBestFitColor;

        // Create and initialize the Graphing Asset graph, initialize formatting and appearance
        InitAxisGraphObjects(graphFormatting);

        // instantiate objects for managing X and Y Axis minimum, maximum and labels.
        xAutoFuncts = new AxisAutoFunctions(unitIsMetric: xHasMetricFormat);
        yAutoFuncts = new AxisAutoFunctions(unitIsMetric: yHasMetricFormat);

        // set appearance variables to appearance object
        SetAppearance(grPointColor, grPointConnectLineColor);

        // get raw section numbers (using dimentions) and use to process max, min, num ticks, metric prefix
        // (x 'raw' section number setter function not currently working)
        xAutoFuncts.rawSectNumSetter = GetXRawSectNum;
        xAutoFuncts.SetParams(initialMinValues.x, initialMaxValues.x, 0);
        yAutoFuncts.SetParams(initialMinValues.y, initialMaxValues.y, GetYRawSectNum());

        // graph formatting is set and applied to graph
        SetGraphFormatting();

        // set axis labellers to ones accounting for metric units and significant figures
        graph.yAxis.axisLabelLabeler = CustomYAxisLabelLabeler;
        graph.xAxis.axisLabelLabeler = CustomXAxisLabelLabeler;

        // set y axis title offset to not overlap the labels
        ResetYAxisTitleOffset(graphFormatting);

        // set up regression if enabled.
        if (hasLineOfBestFit)
        {
            AddRegressionSeries();
            regression = new RegressionLinePlotter(dataSeries, regSeries);
        }
    }
Esempio n. 3
0
    // custom update function for labelling any axis with metric units
    public string GetMetricAxisLabel(WMG_Axis axis, int labelIndex, string valueFormat, int sigFigs, AxisAutoFunctions autoAxisParams = null)
    {
        // map label value to min/max
        float num = axis.AxisMinValue + labelIndex * (axis.AxisMaxValue - axis.AxisMinValue) / (axis.axisLabels.Count - 1);

        if (autoAxisParams == null)
        {
            return(MathScientific.ToMetric(num, valueFormat, sigFigs));
        }
        return(autoAxisParams.FormatLabel(num, valueFormat, sigFigs));
    }