Exemplo n.º 1
0
        private void DrawSD()
        {
            double avg = Result.Avg;
            double stde = Result.STDev_E;
            double stdg = Result.STDev_G;
            double count = Result.Count;
            double x1p, x1n, x2p, x2n, y1, y2;

            (this.chartControl2.Diagram as DevExpress.XtraCharts.XYDiagram).AxisX.ConstantLines[0].Visible   = true;
            (this.chartControl2.Diagram as DevExpress.XtraCharts.XYDiagram).AxisX.ConstantLines[0].AxisValue = this.Result.N3Sigma;
            (this.chartControl2.Diagram as DevExpress.XtraCharts.XYDiagram).AxisX.ConstantLines[1].Visible   = true;
            (this.chartControl2.Diagram as DevExpress.XtraCharts.XYDiagram).AxisX.ConstantLines[1].AxisValue = this.Result.Avg;
            (this.chartControl2.Diagram as DevExpress.XtraCharts.XYDiagram).AxisX.ConstantLines[2].Visible   = true;
            (this.chartControl2.Diagram as DevExpress.XtraCharts.XYDiagram).AxisX.ConstantLines[2].AxisValue = this.Result.P3Sigma;
            this.chartControl2.Series[1].Points.BeginUpdate();
            this.chartControl2.Series[2].Points.BeginUpdate();
            this.chartControl2.Series[1].Points.Clear();
            this.chartControl2.Series[2].Points.Clear();
            for (int i = 0;; i++)
            {
                x1p = avg + stde / 10 * i;
                x1n = avg - stde / 10 * i;
                x2p = avg + stdg / 10 * i;
                x2n = avg - stdg / 10 * i;
                y1  = NormalDistribution.GetY(x1p, avg, stde) * stde;
                y2  = NormalDistribution.GetY(x2p, avg, stdg) * stdg;
                this.chartControl2.Series[1].Points.Add(new DevExpress.XtraCharts.SeriesPoint(x1p, y1));
                this.chartControl2.Series[1].Points.Add(new DevExpress.XtraCharts.SeriesPoint(x1n, y1));
                this.chartControl2.Series[2].Points.Add(new DevExpress.XtraCharts.SeriesPoint(x2p, y2));
                this.chartControl2.Series[2].Points.Add(new DevExpress.XtraCharts.SeriesPoint(x2n, y2));
                if (y1 < 0.001)
                {
                    break;
                }
            }
            this.chartControl2.Series[1].Points.EndUpdate();
            this.chartControl2.Series[2].Points.EndUpdate();
            (this.chartControl2.Diagram as DevExpress.XtraCharts.XYDiagram).AxisY.WholeRange.MinValue              = 0;
            (this.chartControl2.Diagram as DevExpress.XtraCharts.XYDiagram).AxisY.VisualRange.MinValue             = 0;
            (this.chartControl2.Diagram as DevExpress.XtraCharts.XYDiagram).SecondaryAxesY[0].WholeRange.MinValue  = 0;
            (this.chartControl2.Diagram as DevExpress.XtraCharts.XYDiagram).SecondaryAxesY[0].VisualRange.MinValue = 0;
        }