private void DrawBeta(int Alpha, int Beta, string Name) { Series series = new Series(Name); series.BorderWidth = 3; series.ChartType = SeriesChartType.Spline; double Temp = 0; for (double i = 0.01; i < 1; i = i + 0.05) { Temp = Stat.BetaPDF(i, Alpha, Beta); if (MaxValue < Temp) { MaxValue = Temp; } series.Points.AddXY(i, Temp); } chart_PosteriorDensity.Series.Add(series); var XAxis = chart_PosteriorDensity.ChartAreas[0].AxisX; XAxis.MajorGrid.Enabled = false; var YAxis = chart_PosteriorDensity.ChartAreas[0].AxisY; YAxis.MajorGrid.Enabled = false; XAxis.Maximum = 1; XAxis.Minimum = 0; YAxis.Maximum = Math.Ceiling(MaxValue); }
private void DrawBeta(int AlphaIndex, List <int> AlphaList, string Name, int[] CountTimes, int PriorOrPost = 0) { //PriorOrPost = 0为先验,即减去样本数 //PriorOrPost = 1为后验 int InterestAlpha = 0; if (PriorOrPost == 0) { InterestAlpha = AlphaList[AlphaIndex] - CountTimes[AlphaIndex]; } else { InterestAlpha = AlphaList[AlphaIndex]; } int OtherAlphas = 0; if (PriorOrPost == 0) { OtherAlphas = AlphaList.Sum() - CountTimes.Sum() - InterestAlpha; } else { OtherAlphas = AlphaList.Sum() - InterestAlpha; } if (chart_PosteriorDensity.Series.IndexOf(Name) != -1) { MessageBox.Show("图上已经存在相应分布,请勿重复添加!"); return; } Series series = new Series(Name); series.BorderWidth = 3; series.ChartType = SeriesChartType.Spline; double Temp = 0; for (double i = 0.01; i < 1; i = i + 0.05) { Temp = Stat.BetaPDF(i, InterestAlpha, OtherAlphas); if (MaxValue < Temp) { MaxValue = Temp; } series.Points.AddXY(i, Temp); } chart_PosteriorDensity.Series.Add(series); var XAxis = chart_PosteriorDensity.ChartAreas[0].AxisX; XAxis.MajorGrid.Enabled = false; var YAxis = chart_PosteriorDensity.ChartAreas[0].AxisY; YAxis.MajorGrid.Enabled = false; XAxis.Maximum = 1; XAxis.Minimum = 0; YAxis.Maximum = Math.Ceiling(MaxValue); }