Avatar billede eikhorsholm Nybegynder
06. september 2006 - 10:25 Der er 8 kommentarer og
1 løsning

Graf i Java med NetBeans.

Er det forholdvis nemt, at lave sine egne grafer i Java (NetBeans) eller skal man have et plugin?
Og i så fald er der så nogen som kan hjælpe mig (give mig hints) til hvor jeg skal starte. Det skal være muligt, at opdatere grafen "real-time".
Avatar billede arne_v Ekspert
06. september 2006 - 16:12 #1
Jeg plejer at bruge JFreeChart til at lave grafer med i Java
Avatar billede eikhorsholm Nybegynder
07. september 2006 - 15:33 #2
Skal man købe Developers... for at få information omkring hvorledes man benytter JFreeChart?
Avatar billede arne_v Ekspert
07. september 2006 - 16:29 #3
Jeg har altid kunnet regne det ud udfra klasse/metode navne og diverse
samples.
Avatar billede eikhorsholm Nybegynder
11. september 2006 - 22:11 #4
Hæhæ, ok. Det kigger jeg på :-)
Laver du ikke et svar?
Avatar billede arne_v Ekspert
11. september 2006 - 22:15 #5
kommer her

jeg har iøvrigt nogle eksempler liggende
Avatar billede eikhorsholm Nybegynder
18. september 2006 - 23:18 #6
Dem vil jeg meget gerne se. Kan du uploade dem et sted?
Avatar billede arne_v Ekspert
19. september 2006 - 01:37 #7
jeg kan poste lidt kode her
Avatar billede arne_v Ekspert
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());
    }
}
Avatar billede arne_v Ekspert
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);
  }
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester