about JFreeCharts
Hai to all
I am having one problem with jFreecharts.
I am TimeSeriesCharts. While displaying X axis and Y axis
I didnt get the average speed value in the chart. My program is follows
as;
mport java.io.*;
import java.text.*;
import com.hashprompt.vtrack.init.TrackInitialize;
import org.jfree.chart.*;
import org.jfree.chart.ChartColor.*;
import org.jfree.chart.plot.*;
import org.jfree.chart.labels.*;
import org.jfree.chart.renderer.*;
import org.jfree.ui.*;
import java.util.*;
import java.awt.image.*;
import java.awt.*;
import org.jfree.data.time.*;
import org.jfree.data.xy.*;
import java.awt.geom.*;
import java.awt.event.*;
import org.jfree.chart.renderer.xy.*;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.TickUnitSource;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.RefineryUtilities;
import org.jfree.chart.annotations.XYLineAnnotation;
import org.jfree.data.time.TimeSeriesTableModel;
import org.jfree.chart.labels.*;
import com.hashprompt.vtrack.modules.log.*;
import com.hashprompt.vtrack.modules.util.*;
import java.sql.*;
public class GenerateSpeedChart
{
private int speed_limit =0;
private double avg_speed =0;
private double speed =0.0;
private int count =0;private int count =0;
public GenerateSpeedChart(Double speed,int speed_limit )
{
this.speed_limit = speed_limit;
this.speed = speed;
// this.count = count;
}
public void generateChart ( String truck_id,ResultSet rs ,
String file_name ) throws ChartException
{
try
{
DefaultCategoryDataset dataSet = new
DefaultCategoryDataset();
TimeSeries series = new TimeSeries("Per Minute
Data", Minute.class);
int year = 0;
int month = 0;
int date = 0;
int hour = 0;
int minute = 0;
int second = 0;
String []tmp;
Hour hours;
Vector v = new Vector();
speed = 0;
while ( rs.next() )
{
tmp =
rs.getDate("date_time").toString().split("-");
if ( rs.getInt("speed")> 0 )
{
speed += rs.getInt("speed");
count++;
}
year = Integer.parseInt ( tmp[0] );
month = Integer.parseInt ( tmp[1] );
date = Integer.parseInt ( tmp[2] );
tmp =
rs.getTime("date_time").toString().split(":");
hour = Integer.parseInt ( tmp[0] );
minute = Integer.parseInt ( tmp[1] );
hours=new Hour(hour,date,month,year);
series.addOrUpdate(new Minute
(minute,hours),rs.getInt("speed"));
}
TimeSeriesCollection dataset = new
TimeSeriesCollection(series);
JFreeChart chart =
ChartFactory.createTimeSeriesChart(truck_id, "Time","Speed",
dataset,true,false,true );
chart.setBackgroundPaint(Color.white);
chart.getXYPlot().addRangeMarker(new
ValueMarker(speed_limit));
if(speed>0.0)
TrackInitialize.logger.info(count
+","+(speed/count));
avg_speed = speed/count;
XYPlot plot = chart.getXYPlot();
ValueMarker valuemarker = new
ValueMarker(avg_speed);
valuemarker.setPaint(Color.blue);
// value.getValue(avg_speed);
chart.getXYPlot().addRangeMarker(valuemarker);
FileOutputStream fileOut = new
FileOutputStream(new File(file_name));
ChartUtilities.writeChartAsPNG(fileOut,chart,500,225);
}
catch ( Exception e )
{
e.printStackTrace();
throw new ChartException ( "#" + ( new
Utilities() ).getMessage( e ) + "#1" );
}
}
}
Please any one HELP ME !!!!!
Thanks in advance.