Annonceindlæg fra Idura
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); } }