package com.activequant.timeseries;
import java.awt.Color;
import java.util.List;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.data.time.Millisecond;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import com.activequant.domainmodel.TimeStamp;
public class ChartUtils {
public static JFreeChart getStepChart(String title, TSContainer2 container) {
TimeSeriesCollection tempDataSet = new TimeSeriesCollection();
for (int i = 0; i < container.getNumColumns(); i++) {
DoubleColumn dc = (DoubleColumn) container.getColumns().get(i);
List<TimeStamp> ts = container.getTimeStamps();
TimeSeries tsNew = new TimeSeries(container.getColumnHeaders().get(i));
for (int j = 0; j < dc.size(); j++)
tsNew.addOrUpdate(new Millisecond(ts.get(j).getDate()), dc.get(j));
// add a new series.
tempDataSet.addSeries(tsNew);
}
JFreeChart chart = ChartFactory.createXYStepChart(title, "Time", "Value", tempDataSet, PlotOrientation.VERTICAL, true, true, false);
chart.setBackgroundPaint(Color.WHITE);
chart.getPlot().setBackgroundPaint(Color.WHITE);
((XYPlot)chart.getPlot()).setDomainGridlinePaint(Color.LIGHT_GRAY);
((XYPlot)chart.getPlot()).setRangeGridlinePaint(Color.LIGHT_GRAY);
return chart;
}
}