我编码交互式小程序与短笛和我需要包括高斯曲线(又名正态分布图表)在其内部。

我想任何Java实现的就足够了,但我无法找到任何。理想情况下,我想通过一组值,并有在面板,图像对象或任何可以被嵌入在一个applet绘制的图表。

让我的手脏编码它自己之前,没有任何人知道的代码工作一块办呢?

在其他语言中实现的欢迎,只要它们是容易携带到Java。

有帮助吗?

解决方案

不知道它的工作原理,但谷歌扔了的此代码来绘制一个高斯分布

该项目的主页是这里

如果短笛不为你进行绘图,我便叫使用的JFreeChart ,在实际绘图,因为它的广泛支持和非常能干。 (我不熟悉短笛)

其他提示

编辑:它看起来像 Apache的百科全书数学库具有统计部。具体而言,整体包上共同分布。但愿那里有一些数学的人在那里,因为我不记得基本的统计...这是我在使用他们的图书馆的尝试。我只是有一个滑动窗口在这里和计算这些值之间的P。请告诉我真正的方式来获得这个PDF?它们仅具有一个CDF功能。

public void testNormalDist() throws MathException {
    DistributionFactory f = DistributionFactory.newInstance();
    NormalDistribution n = f.createNormalDistribution(0.0d, 1.0d);
    double lastx = Double.NEGATIVE_INFINITY;
    double nextx = Double.NEGATIVE_INFINITY;
    for (int i=-100; i < 100; i++) {
        nextx = i / 100d;
        System.out.println(n.cumulativeProbability(lastx, nextx));
        lastx = nextx;
    }
}

我假设你想要的图形的概率密度函数。该方程是维基百科,因为我不知道怎么在这里包括数学标记。只要使用P(X)为您的Y值和X为你的X值,你可以从得到一个很简单2-d图。

你有没有下的Java 看着 Mathtools?

确定,这个怎么样?你给它的X点(归一化的,当然,可以通过除以图像的宽度的各像素位置的X个像素转换为这些)的阵列,并且它会返回分布曲线的高度(同样,你的归一化因子相乘)。这对于其中均值为0和标准偏差为1的基本情况。

public double[] normalDistBasic(double[] xarray, double mu) {
    double[] yarray = new double[xarray.length];
    double rad2pi = 2.50662827d;
    for (int off = 0; off < yarray.length; off++) {
        double x = xarray[off];
        double ss = -1d * x * x / 2d;
        yarray[off] = (-1f / rad2pi) * Math.exp(ss);
    }
    return yarray;
}

这应该是很容易实现即需要任意均值和标准差,如果一个人不能在网上找到。

scroll top