creacion de graficos estadisticos en tiempo real

Iniciado por sapito169, 30 Mayo 2013, 18:52 PM

0 Miembros y 1 Visitante están viendo este tema.

sapito169

este código es genial y se ve muy bien me permite crear gráficos estadísticos en tiempo real es muy util para hacer monitoreos

porfavor respondan aunquesea para insultar pero no me ignoren

Código (java) [Seleccionar]


import java.awt.BorderLayout;


import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.time.Second;
import org.jfree.data.time.DynamicTimeSeriesCollection;

import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.LayoutManager;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Time;
import java.util.Random;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;

public class FormularioPrincipal extends JFrame {

public FormularioPrincipal() {

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
add(new PanelGraphicaEnTiempoReal());
}

public static void main(String[] args) {
FormularioPrincipal frmPrincipal = new FormularioPrincipal();
frmPrincipal.setVisible(true);
}

private static class PanelGraphicaEnTiempoReal extends JPanel implements ActionListener {

private DynamicTimeSeriesCollection contenidoSerieDinamica;
private JFreeChart graphicaDeTiempo;
private Timer cronometro;
private Random generadorDeAleatorios;

private int segundo;
private int minuto;
private int hora;
private int dia;
private int mes;
private int año;
private int indiceSerie;
private String nombreDeLaSerie;



public PanelGraphicaEnTiempoReal() {

generadorDeAleatorios=new Random();
cronometro=new Timer(200,this);


contenidoSerieDinamica = new DynamicTimeSeriesCollection(
getCantidadDeSeries(),
getCantidadPorSerie(),
enSegundos());//crea el contenido de la serie dinamica

contenidoSerieDinamica.setTimeBase(new Second(segundo=0,minuto=0,hora=0,dia=1,mes=1,año=2013));//pone el primer instante
contenidoSerieDinamica.addSeries(valoresDeLaSerie(), indiceSerie=0,nombreDeLaSerie="ventas");//agrega una serie

graphicaDeTiempo = ChartFactory.createTimeSeriesChart(
getTitulo(),
getEtiquetaDelasX(),
getEtiquetaDelasY(),
contenidoSerieDinamica,
tieneLeyenda(),
tienToolTip(),
tineUrl());//crea una grafica de tiempo

ChartPanel panelDeLaGraphica = new ChartPanel(graphicaDeTiempo);//crea un panel para graficas


add(panelDeLaGraphica);

cronometro.start();
}

private float[] valoresDeLaSerie() {
float[] respuesta = new float[getCantidadPorSerie()];
Random creadorDeAleatorios = new Random();
for (int i = 0; i < respuesta.length; i++) {
respuesta[i]=creadorDeAleatorios.nextFloat();//crea un aleatorio;
}
return respuesta;
}

@Override
public void actionPerformed(ActionEvent e) {
contenidoSerieDinamica.advanceTime();//avansa el tiempo
contenidoSerieDinamica.appendData(new float[]{generadorDeAleatorios.nextFloat()});//agrega un aleatorio
}

private boolean tineUrl() {
return false;
}

private boolean tienToolTip() {
return true;
}

private boolean tieneLeyenda() {
return true;
}

private String getEtiquetaDelasY() {

return "ventas";
}

private String getEtiquetaDelasX() {
return "hh:mm:ss";
}

public String getTitulo() {

return "ventas";
}

private Second enSegundos() {
return new Second();
}

public int getCantidadPorSerie() {

return 120;
}

public int getCantidadDeSeries() {
return 1;
}


}

}

RyogiShiki

Pequeña aclaración. Para compilar el código necesitan de las librerías JFree, que las pueden encontrar aquí: http://www.jfree.org/jfreechart/download.html y aquí: http://www.jfree.org/jfreechart/api/javadoc/index.html pueden ver la documentación.


compuchiqui


rub'n

sapito,,,y algun grafico estadistico en java pero orientado a web? se podria? ejemplosss? ??

o faltaria usar algun framework ? como vaadin o spring?  ;D


rubn0x52.com KNOWLEDGE  SHOULD BE FREE!!!
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen