Mit diagram er af typen: JFreeChart chart = ChartFactory.createXYLineChart("Title", "X", "Y",
dataset, PlotOrientation.VERTICAL, true, true, false);
Eksempel:
package june;
import java.awt.*;
import java.text.*;
import org.jfree.chart.*;
import org.jfree.chart.plot.*;
import org.jfree.chart.axis.*;
import org.jfree.chart.renderer.xy.*;
import org.jfree.data.time.*;
import org.jfree.ui.*;
public class MovingAverageDemo extends ApplicationFrame {
public MovingAverageDemo(String title, String data, int y1, int m1, int y2, int m2, double[] val) {
super(title);
TimeSeries ts1 = new TimeSeries(data, Month.class);
int y = y1;
int m = m1;
int ix = 0;
while((y < y2) || (m <= m2)) {
ts1.add(new Month(m, y), val[ix]);
m++;
if(m > 12) {
y++;
m = 1;
}
ix++;
}
TimeSeries ts2 = MovingAverage.createMovingAverage(ts1, "3 month mov.avg. of " + data, 3, 0);
TimeSeries ts3 = MovingAverage.createMovingAverage(ts1, "6 month mov.avg. of " + data, 6, 0);
TimeSeries ts4 = MovingAverage.createMovingAverage(ts1, "12 month mov.avg. of " + data, 12, 0);
TimeSeriesCollection dataset = new TimeSeriesCollection();
dataset.addSeries(ts1);
dataset.addSeries(ts2);
dataset.addSeries(ts3);
dataset.addSeries(ts4);
JFreeChart chart = ChartFactory.createTimeSeriesChart(title, "Time", "Value", dataset, true, true, false);
chart.setBackgroundPaint(Color.PINK);
XYPlot plot = chart.getXYPlot();
XYItemRenderer renderer = plot.getRenderer();
System.out.println(renderer.getClass().getName());
if (renderer instanceof XYLineAndShapeRenderer) {
XYLineAndShapeRenderer rr = (XYLineAndShapeRenderer) renderer;
rr.setShapesFilled(true);
rr.setSeriesPaint(0, Color.BLACK);
rr.setSeriesPaint(1, Color.CYAN);
rr.setSeriesPaint(2, Color.MAGENTA);
rr.setSeriesPaint(3, Color.ORANGE);
}
DateAxis axis = (DateAxis)plot.getDomainAxis();
axis.setDateFormatOverride(new SimpleDateFormat("MMM-yyyy"));
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new Dimension(800, 600));
setContentPane(chartPanel);
pack();
setVisible(true);
}
public static void main(String[] args) {
double[] x = { 1, 4, 9, 16, 25, 36, 30, 24, 18, 12, 6, 0, 32, 48, 56, 60, 62, 63 };
MovingAverageDemo mad = new MovingAverageDemo("Moving Average Demo", "test data", 2003, 1, 2004, 6, x);
}
}