c# 正态分布图
时间: 2023-07-27 11:18:21 浏览: 333
在 C# 中,可以使用 MathNet.Numerics 库来绘制正态分布图。以下是一个简单的例子:
```csharp
using MathNet.Numerics.Distributions;
using OxyPlot;
using OxyPlot.Axes;
using OxyPlot.Series;
using OxyPlot.WindowsForms;
public void DrawNormalDistribution(double mean, double stdDev)
{
var plotModel = new PlotModel { Title = "Normal Distribution" };
var xAxis = new LinearAxis { Position = AxisPosition.Bottom, Title = "x" };
var yAxis = new LinearAxis { Position = AxisPosition.Left, Title = "y" };
plotModel.Axes.Add(xAxis);
plotModel.Axes.Add(yAxis);
var normalDist = new Normal(mean, stdDev);
var series = new LineSeries();
for (double x = mean - 4 * stdDev; x <= mean + 4 * stdDev; x += 0.1)
{
series.Points.Add(new DataPoint(x, normalDist.Density(x)));
}
plotModel.Series.Add(series);
var plotView = new PlotView();
plotView.Model = plotModel;
plotView.Dock = DockStyle.Fill;
// Add the plotView to your form to display the plot
}
```
这个例子使用了 OxyPlot 库来绘制图表,如果没有安装可以使用 NuGet 安装。`DrawNormalDistribution` 方法接受两个参数,分别是正态分布的均值和标准差。在方法中,首先创建了一个 `PlotModel` 对象,并添加了 x 轴和 y 轴。然后使用 `Normal` 类创建了一个正态分布对象,再用 `LineSeries` 类创建了一个线性图表,并在循环中计算每个 x 坐标处的密度值,将其添加到 `LineSeries` 中。最后将 `PlotView` 对象添加到窗体中即可。
阅读全文