EduardoNetto Postado Março 5, 2009 Denunciar Share Postado Março 5, 2009 Boa tarde meu caros, estou com um probleminha, tenho um código que cria um gráfico de linha, e outra que lê um arquivo txt. Abaixo o código do gráfico: view plaincopy to clipboardprint?package xyseries; /* * * @author eduardoesn */ import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.plot.XYPlot; import org.jfree.data.xy.XYSeries; import org.jfree.data.xy.XYSeriesCollection; import org.jfree.ui.ApplicationFrame; import org.jfree.ui.RefineryUtilities; import lertxt.LerTxt; public class XYSeriesDemo extends ApplicationFrame { public XYSeriesDemo(final String title) { super(title); final XYSeries series = new XYSeries ("Flat Data"); series.add(3.0, 110.0); series.add(2.5, 90.0); series.add(5.0, 105.0); series.add(8.7, 150.0); series.add(13.9,101.0); series.add(15.7, 100.0); final XYSeriesCollection data = new XYSeriesCollection(series); final JFreeChart chart = ChartFactory.createXYLineChart("XY Series Demo", "X", "Y", data,PlotOrientation.VERTICAL , true,true, false); final ChartPanel chartPanel = new ChartPanel(chart); chartPanel.setPreferredSize(new java.awt.Dimension (500, 270)); setContentPane(chartPanel); } /** * @param args the command line arguments */ public static void main (final String[] args){ final XYSeriesDemo demo = new XYSeriesDemo ("XY Series Demo"); demo.pack(); RefineryUtilities.centerFrameOnScreen(demo); demo.setVisible(true); } } mas no lugar das series.add.... eu gostaria de colocar os valores lidos em um txt que tem o seguinte código e aparece da seguinte forma: view plaincopy to clipboardprint?public class LerTxt { public static void main (String[] args) throws IOException{ //Lendo e imprimindo linhas de um arquivo-texto para a console: FileReader reader = new FileReader("log.txt"); BufferedReader br = new BufferedReader(reader); String linha; //int linhasLidas = 0; while ((linha = br.readLine())!= null ){ //System.out.println(linha); String[] items = linha.split(","); if(items.length > 1 && items[0].equals("104")) for (int i = 1; i < 5 && i < items.length; i++) System.out.println(items); System.out.println(); } } } public class LerTxt { public static void main (String[] args) throws IOException{ //Lendo e imprimindo linhas de um arquivo-texto para a console: FileReader reader = new FileReader("log.txt"); BufferedReader br = new BufferedReader(reader); String linha; //int linhasLidas = 0; while ((linha = br.readLine())!= null ){//System.out.println(linha); String[] items = linha.split(","); if(items.length > 1 && items[0].equals("104")) for (int i = 1; i < 5 && i < items.length; i++) System.out.println(items); System.out.println();} }} A resposta do programa é esta aqui abaixo:2009 63 1330 3.123 2009 63 1340 3.836 2009 63 1350 3.458 2009 63 1400 3.012 2009 63 1410 3.286 onde os três primeiros estarão no eixo x e o último número estará no eixo y, formando assim pares ordenados (x, y). Alguém poderia me ajudar? Desde já agradeço. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
EduardoNetto
Boa tarde meu caros,
estou com um probleminha, tenho um código que cria um gráfico de linha, e outra que lê um arquivo txt.
Abaixo o código do gráfico:
view plaincopy to clipboardprint?
package xyseries;
/*
*
* @author eduardoesn
*/
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
import lertxt.LerTxt;
public class XYSeriesDemo extends ApplicationFrame {
public XYSeriesDemo(final String title) {
super(title);
final XYSeries series = new XYSeries ("Flat Data");
series.add(3.0, 110.0);
series.add(2.5, 90.0);
series.add(5.0, 105.0);
series.add(8.7, 150.0);
series.add(13.9,101.0);
series.add(15.7, 100.0);
final XYSeriesCollection data = new XYSeriesCollection(series);
final JFreeChart chart = ChartFactory.createXYLineChart("XY Series Demo", "X", "Y",
data,PlotOrientation.VERTICAL , true,true, false);
final ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension (500, 270));
setContentPane(chartPanel);
}
/**
* @param args the command line arguments
*/
public static void main (final String[] args){
final XYSeriesDemo demo = new XYSeriesDemo ("XY Series Demo");
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
}
mas no lugar das series.add.... eu gostaria de colocar os valores lidos em um txt que tem o seguinte código e aparece da seguinte forma:
view plaincopy to clipboardprint?
public class LerTxt {
public static void main (String[] args) throws IOException{
//Lendo e imprimindo linhas de um arquivo-texto para a console:
FileReader reader = new FileReader("log.txt");
BufferedReader br = new BufferedReader(reader);
String linha;
//int linhasLidas = 0;
while ((linha = br.readLine())!= null ){
//System.out.println(linha);
String[] items = linha.split(",");
if(items.length > 1 && items[0].equals("104"))
for (int i = 1; i < 5 && i < items.length; i++)
System.out.println(items);
System.out.println();
}
}
}
public class LerTxt {
public static void main (String[] args) throws IOException{
//Lendo e imprimindo linhas de um arquivo-texto para a console:
FileReader reader = new FileReader("log.txt");
BufferedReader br = new BufferedReader(reader);
String linha;
//int linhasLidas = 0;
while ((linha = br.readLine())!= null ){
//System.out.println(linha);
String[] items = linha.split(",");
if(items.length > 1 && items[0].equals("104"))
for (int i = 1; i < 5 && i < items.length; i++)
System.out.println(items);
System.out.println();
}
}
}
A resposta do programa é esta aqui abaixo:
2009
63
1330
3.123
2009
63
1340
3.836
2009
63
1350
3.458
2009
63
1400
3.012
2009
63
1410
3.286
onde os três primeiros estarão no eixo x e o último número estará no eixo y, formando assim pares ordenados (x, y).
Alguém poderia me ajudar?
Desde já agradeço.
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.