19. september 2006 - 01:38
#8
import java.awt.image.*;
import java.io.*;
import java.util.*;
import javax.imageio.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.jfree.chart.*;
import org.jfree.chart.axis.*;
import org.jfree.chart.plot.*;
import org.jfree.chart.renderer.xy.*;
import org.jfree.data.xy.*;
public class CurveServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("image/jpeg");
String title = request.getParameter("title");
String data = request.getParameter("data");
StringTokenizer st = new StringTokenizer(request.getParameter("values"), ",");
double[] val = new double[st.countTokens()];
int ix = 0;
while (st.hasMoreTokens()) {
val[ix] = Double.parseDouble(st.nextToken());
ix++;
}
XYSeries ser = new XYSeries(data);
for (int i = 0; i < val.length; i++) {
ser.add(i + 1, val[i]);
}
XYSeriesCollection dataset = new XYSeriesCollection();
dataset.addSeries(ser);
JFreeChart chart = ChartFactory.createXYLineChart(title, "X", "Y", dataset, PlotOrientation.VERTICAL, true, true, false);
XYPlot plot = chart.getXYPlot();
XYItemRenderer renderer = plot.getRenderer();
if (renderer instanceof StandardXYItemRenderer) {
StandardXYItemRenderer rr = (StandardXYItemRenderer) renderer;
rr.setPlotShapes(true);
rr.setShapesFilled(true);
}
NumberAxis axis = (NumberAxis) plot.getDomainAxis();
axis.setTickUnit(new NumberTickUnit(1.0));
BufferedImage bi = chart.createBufferedImage(200, 200);
ImageIO.write(bi, "JPEG", response.getOutputStream());
}
}
19. september 2006 - 01:38
#9
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);
}
}