Pregunta

Estoy codificación de una aplicación interactiva con Piccolo y tengo que incluir una gaussiana curva (aka normal gráfica de distribución ) dentro de él.

Me imagino que cualquier tipo de aplicación Java sería suficiente, pero no puedo encontrar ninguna. Idealmente, me gustaría pasar un conjunto de valores y tienen el gráfico dibujado en un panel, un objeto de imagen o cualquier cosa que puede ser incrustado en un applet.

Antes de conseguir mis manos sucias de codificación que a mí mismo, ¿alguien sabe de una pieza de trabajo de código para hacerlo?

Las implementaciones en otros idiomas son bienvenidos, siempre y cuando que son fáciles de transportar a Java.

¿Fue útil?

Solución

No sabe si funciona, pero Google vomitó este código para trazar una distribución gaussiana .

La página principal de este proyecto es aquí .

Si Piccolo no realiza el trazado para ti, lo haría quizá usar JFreeChart para el el trazado real, ya que es ampliamente apoyada y muy capaz. (No estoy familiarizado con Piccolo)

Otros consejos

Edit: Parece que la href="http://commons.apache.org/math/" rel="nofollow noreferrer"> biblioteca tiene una sección de estadísticas. En concreto, un paquete entero de Distribuciones . Con suerte theres algunas personas de matemáticas por ahí, porque no puedo recordar las estadísticas básicas ... aquí está mi intento de usar el de su biblioteca. Sólo tengo una ventana deslizante aquí y calcular el P entre esos valores. ¿Cuál es la verdadera manera de obtener un documento PDF con esto? Ellos sólo tienen una función 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;
    }
}

Asumo desea que la función de densidad de probabilidad para la gráfica. ecuaciones noreferrer"> la MathTools bajo Java ?

De acuerdo, ¿qué tal esto ... se le da una matriz de puntos (X normalizado, por supuesto, se puede convertir sus píxeles X a estos dividiendo cada posición de píxel por el ancho de la imagen), y volverá las alturas de la curva de distribución (de nuevo, se multiplica por su factor de normalización). Esto es para el caso base, en la media es 0 y la desviación estándar es de 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;
}

Debe ser bastante fácil de implementar que lleva media y la desviación estándar arbitraria si uno no se puede encontrar en la red.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top