import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.*;
import java.util.*;
import java.lang.NumberFormatException;
import java.text.NumberFormat;
import java.text.MessageFormat;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PiePlot;
import org.jfree.data.general.DefaultPieDataset;
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.chart.renderer.xy.StandardXYItemRenderer;
import org.jfree.data.*;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.data.DomainOrder;
import org.jfree.data.general.SeriesDataset;
import org.jfree.data.category.DefaultCategoryDataset;
public class graph extends JFrame{
/**
*
*/
private static final long serialVersionUID = 0L;
public graph(String title) throws Exception{
super(title);
XYDataset dataset = createDataset();
JFreeChart chart = createChart(dataset);
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
setContentPane(chartPanel);
chartPanel.setMouseZoomable(true, false);
}
// Well, here I read a file from a table in txt each line with 4 columns of numbers), save it in a string and then on a string
// Array of 4 elements. Then convert each element of the string to double (not know if I'm being very stupid, I am more beginner in java ...)
// What I'm trying to do is get two of those column (now in double) and put points on the method series.add below
// I think I have to do a loop of some way, then do what you suggested q ... But the loop that I did overwrite the variables
// My attempt was a normal access to the txt file
/* public extrator extract(String) throws Exception {
File file = new File("F:\\Ekralog.txt");
FileInputStream in = new FileInputStream(file);
InputStreamReader convert = new InputStreamReader(in);
BufferedReader bf = new BufferedReader(convert);
String line;
String[] element;
line = bf.readLine();
element = line.split("[\\s]+");
bf.close();
in.close();return
*/
private XYDataset createDataset() throws Exception {
//CONVERT STRING TO DOUBLE
//double element0;
//element0 = Double.parseDouble(element[0]); /* element[0] its one string*/
XYSeries series1 = new XYSeries("TRZ");
series1.add(1.0, 1.0); // some point that i've inserted to test and it is
series1.add(2.0, 4.0);// should i do a loop to test it.. there are more than 100 points
series1.add(3.0, 3.0);
series1.add(4.0, 5.0);
series1.add(5.0, 5.0);
series1.add(6.0, 7.0);
series1.add(7.0, 7.0);
series1.add(8.0, 8.0);
XYSeriesCollection dataset = new XYSeriesCollection();
dataset.addSeries(series1);
return dataset;
}
// ListDouble colunas = new ArrayListDouble();
//public ListDouble getColunas(){
// return colunas;
// }
private JFreeChart createChart(XYDataset dataset) {
// create the chart...
JFreeChart chart = ChartFactory.createXYLineChart(
"Medida", // chart title
"X", // x axis label
"Y", // y axis label
dataset, // data
PlotOrientation.VERTICAL,
true, // include legend
true, // tooltips
false // urls
);
return chart;
}
public static void main(String[] args) throws Exception {
graph teste = new graph("test");
teste.pack();
teste.setVisible(true);
}
}
I don't think you want an XYSeries for that. If you want it to be a line chart (bar chart seems more appropriate to me, but you seem to want the line chart), try this instead
You are right... i want a bar chart... but as a newby i'm still trying to discover to potential of the javafreechart... reading trying reading trying... i'm too slowwww...
I don't think you want an XYSeries for that. If you want it to be a line chart (bar chart seems more appropriate to me, but you seem to want the line chart), try this instead
No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.