Avatar billede kube Nybegynder
15. juni 2006 - 10:13 Der er 3 kommentarer og
1 løsning

jfreechart farve?

Hej Eksperter,

Kan I hjælpe mig med at sætte farverne for de org.jfree.data.xy.XYSeries, der er med i mit diagram?

Mvh
Kube
Avatar billede kube Nybegynder
15. juni 2006 - 10:27 #1
Mit diagram er af typen: JFreeChart chart = ChartFactory.createXYLineChart("Title", "X", "Y",
                dataset, PlotOrientation.VERTICAL, true, true, false);
Avatar billede arne_v Ekspert
16. juni 2006 - 01:32 #2
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);
  }
}
Avatar billede kube Nybegynder
16. juni 2006 - 11:48 #3
tak. sender du et svar
Avatar billede arne_v Ekspert
16. juni 2006 - 13:04 #4
kommer her
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