Hello every one ,
i want to use jfreechart for plotting graph
i have timestamp on x axis and values on yaxis.
is there support for timestamp?
i thought of using timeperiod Minute or Hour
i got errors any one help me please
TimeSeries.add(...) inconsistent time period class .
code ..from changing ..JFreeChartDemo2
BasicTimeSeries series = new BasicTimeSeries("Random Data");
Day current = new Day(1, 1, 1995);
double value = 100.0;
//java.util.Date time=new Date();
Minute mn=new Minute(10, current);
// Millisecond ms=new Millisecond(time);
for (int i=0; i<10; i++) {
try {
value = value+Math.random()-0.5;
series.add( mn,new Double(value));
mn = (Minute)mn.next();
}
catch (SeriesException e) {
System.err.println("Error adding to series"+e);
}
}
XYDataset data = new TimeSeriesCollection(series);
JFreeChart chart = ChartFactory.createTimeSeriesChart ("Test", "Day", "Value", data, false);
JFreeChartFrame frame = new JFreeChartFrame("Test", chart);
frame.pack();
frame.setVisible(true);
}
Thanks in advance..
TimeStamp
Re: TimeStamp
The only problem with your code is the constructor for the BasicTimeSeries class. If you change it to:
BasicTimeSeries series = new BasicTimeSeries("Random Data", Minute.class);
...then your code should work fine.
The default BasicTimeSeries is set up to work with the Day class, but using the above constructor you can change that to whatever class you require (Year, Quarter, Month, Week, Day, Hour, Minute, Second or Millisecond).
Hope that helps,
Dave Gilbert.
BasicTimeSeries series = new BasicTimeSeries("Random Data", Minute.class);
...then your code should work fine.
The default BasicTimeSeries is set up to work with the Day class, but using the above constructor you can change that to whatever class you require (Year, Quarter, Month, Week, Day, Hour, Minute, Second or Millisecond).
Hope that helps,
Dave Gilbert.
Re: TimeStamp
Hello David Gilbert,
Thanks for your reply ,
i have spent several hours figuring this out ..but could not ..
Thanks Once again,
Srikanth
Thanks for your reply ,
i have spent several hours figuring this out ..but could not ..
Thanks Once again,
Srikanth
Re: TimeStamp
How do i show the graph between timestamp? Please, help me ..... ( Like i want to show from 10:30am to 18:30pm)
package com.jrefinery.chart.demo;
import com.jrefinery.chart.*;
import com.jrefinery.data.*;
import com.jrefinery.date.*;
import java.sql.*;
public class JFreeChartDemo2 {
public static ResultSet rs;
public double nn;
public static void main(String[] args) {
try {
String driverClassName = "sun.jdbc.odbc.JdbcOdbcDriver" ; // "org.gjt.mm.mysql.Driver";
Driver driver = (Driver)Class.forName(driverClassName).newInstance();
DriverManager.registerDriver(driver);
Connection conn = DriverManager.getConnection("jdbc:odbc:YHOO");
System.out.println("Connection Established");
Statement st = conn.createStatement();
rs = st.executeQuery("Select value from table1");
}
catch (Exception e) {
System.out.println("No Connection");
}
BasicTimeSeries series = new BasicTimeSeries("Random Data",Minute.class);
Day current = new Day(1, 1, 1990);
// Minute minu = new Minute(15,current);
Minute minu = new Minute();
try {
for (int i=0; rs.next(); i++) {
try {
series.add(minu, new Double(rs.getDouble(1)));
minu = (Minute)minu.next();
}
catch (SeriesException e) {
System.err.println("Error adding to series");
}
}
}
catch (Exception e) {
System.err.println("Error adding to data");
}
XYDataset data = new TimeSeriesCollection(series);
JFreeChart chart = ChartFactory.createTimeSeriesChart("Test", "Day", "Value", data, false);
JFreeChartFrame frame = new JFreeChartFrame("Test", chart);
frame.pack();
frame.setVisible(true);
}
}
package com.jrefinery.chart.demo;
import com.jrefinery.chart.*;
import com.jrefinery.data.*;
import com.jrefinery.date.*;
import java.sql.*;
public class JFreeChartDemo2 {
public static ResultSet rs;
public double nn;
public static void main(String[] args) {
try {
String driverClassName = "sun.jdbc.odbc.JdbcOdbcDriver" ; // "org.gjt.mm.mysql.Driver";
Driver driver = (Driver)Class.forName(driverClassName).newInstance();
DriverManager.registerDriver(driver);
Connection conn = DriverManager.getConnection("jdbc:odbc:YHOO");
System.out.println("Connection Established");
Statement st = conn.createStatement();
rs = st.executeQuery("Select value from table1");
}
catch (Exception e) {
System.out.println("No Connection");
}
BasicTimeSeries series = new BasicTimeSeries("Random Data",Minute.class);
Day current = new Day(1, 1, 1990);
// Minute minu = new Minute(15,current);
Minute minu = new Minute();
try {
for (int i=0; rs.next(); i++) {
try {
series.add(minu, new Double(rs.getDouble(1)));
minu = (Minute)minu.next();
}
catch (SeriesException e) {
System.err.println("Error adding to series");
}
}
}
catch (Exception e) {
System.err.println("Error adding to data");
}
XYDataset data = new TimeSeriesCollection(series);
JFreeChart chart = ChartFactory.createTimeSeriesChart("Test", "Day", "Value", data, false);
JFreeChartFrame frame = new JFreeChartFrame("Test", chart);
frame.pack();
frame.setVisible(true);
}
}
Re: TimeStamp
hi ,
i am using millisecond instead of timestamp
i mean from number of millis from 1970 and its fine for me ..
and use millisecond.class in constructor.
BasicTimeSeries series = new BasicTimeSeries("Random Data",Millisecond.class);
i am using millisecond instead of timestamp
i mean from number of millis from 1970 and its fine for me ..
and use millisecond.class in constructor.
BasicTimeSeries series = new BasicTimeSeries("Random Data",Millisecond.class);