Gerar gráfico de linha a partir de dados obtidos de arquivo XML

0 respostas
J

Olá pessoal, já faz alguns dias que estou preso nesse problema e agradeceria muito se alguém pudesse me ajudar.

Eu tenho uma classe que lê o arquivo XML e pega os dados que eu quero. Tenho outra classe que peguei da internet que gera um gráfico de linha do jeito que preciso. O problema é que eu não sei como passar os meus dados obtidos para o "dataset" da classe do gráfico. Vou postar o código para ver se ajuda a entender.

Classe que gera o gráfico
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;

public class LineChart_AWT extends ApplicationFrame {
    
     public LineChart_AWT( String applicationTitle , String chartTitle )
   {
      super(applicationTitle);
      JFreeChart lineChart = ChartFactory.createLineChart(
         chartTitle,
         "Years","Number of Schools",
         createDataset(),
         PlotOrientation.VERTICAL,
         true,true,false);
         
      ChartPanel chartPanel = new ChartPanel( lineChart );
      chartPanel.setPreferredSize( new java.awt.Dimension( 560 , 367 ) );
      setContentPane( chartPanel );
   }

   private DefaultCategoryDataset createDataset()
   {
      DefaultCategoryDataset dataset = new DefaultCategoryDataset( );
      dataset.addValue( 15 , "schools" , "1970" );
      dataset.addValue( 30 , "schools" , "1980" );
      dataset.addValue( 60 , "schools" ,  "1990" );
      dataset.addValue( 120 , "schools" , "2000" );
      dataset.addValue( 240 , "schools" , "2010" );
      dataset.addValue( 300 , "schools" , "2014" );
      return dataset;
   }
   
   public static void main( String[ ] args ) 
   {
      LineChart_AWT chart = new LineChart_AWT(
      "School Vs Years" ,
      "Number of Schools vs years");

      chart.pack( );
      RefineryUtilities.centerFrameOnScreen( chart );
      chart.setVisible( true );
   }
    
}

Eu tentei criar parâmetro para pegar meus dados no método "createDataset", mas aí causa erro em outros métodos.
Inicialmente gostaria de "plotar" apenas esse meu ArrayList "listaStep" no eixo Y enquanto o eixo X avança em espaços constantes. Alguém poderia me ajudar por favor?

Criado 9 de outubro de 2014
Respostas 0
Participantes 1