java - Using jfreechart, how would I change the color and style of the series -


i'm beginner programmer. project school. lot jfreechart implementation code not specific code, taken other tutorials.

import java.awt.basicstroke; import java.awt.color;  import org.jfree.chart.chartfactory; import org.jfree.chart.chartframe; import org.jfree.chart.chartpanel; import org.jfree.chart.jfreechart; import org.jfree.chart.axis.numberaxis; import org.jfree.chart.plot.plotorientation; import org.jfree.chart.plot.xyplot; import org.jfree.chart.renderer.xy.xylineandshaperenderer; import org.jfree.data.xy.xydataset; import org.jfree.data.xy.xyseries; import org.jfree.data.xy.xyseriescollection; import org.jfree.ui.applicationframe; import org.jfree.ui.refineryutilities;  import java.util.arraylist;  /**  * resource class  */ public class interest { /**  * instance variables  */ private double interestrate; //the rate of interest earned private int time; //how many of 1 unit of time measurement -- generally, in terms of years private int rate; //how many times during 1 unit of time interest compound  private double investment; //the amount of money that's being invested private final double inflation = .025; //the rate of nominal value of increases   /**  * default constructor  * default values  */ public interest()  {     time = 6;     rate = 1;     investment = 2000.00;     interestrate = 2; }  /**  * 4-argument constructor  * @param  * @param ir  * @param t  * @param r  */ public interest(double i, double ir, int t, int r) {     investment = i;     time = t;     rate =r;     interestrate = ir; }  /**  * class methods  * @param time  */  public void settime(int time) //sets time instance variable in resource class {     this.time = time; }  public void setrate(int rate) //sets rate instance variable in resource class {     this.rate = rate; }  public void setinterestrate(double interestrate) //sets interest rate instance variable in resource class {     this.interestrate = interestrate; }  public void setinvestment(double investment) //sets investment instance variable in resource class {     this.investment = investment; }  public int gettime() //gets time instance variable in resource class {     return time; }  public double getinvestment() //gets investment instance variable in resource class {     return investment;   }  public int getrate() //gets rate instance variable in resource class {     return rate; }  public double getinterestrate() //gets interest rate instance variable in resource class {     return interestrate; }  public double cumulativeinvestmentvalue() //calculates value of investment on period of time {     double decimalinterest = (double)(interestrate/100.00);     return investment * (math.pow(((decimalinterest/rate) + 1), (time * rate)));  } public string getequation() //returns equation of function {     return "" + investment + "(1 + " + interestrate/100 + "/" + rate + ")^(x * " + rate + ")"; }  public double getderivative(double x) //calculates slope of tangent line @ given point {     int t = time;     double r = rate;     double = investment;     double ir = interestrate;     double decimalinterestrate = ir/100;      return  * (r * (math.pow((1 + decimalinterestrate/r), x * r)) * ((math.log(1 + (decimalinterestrate/r))))); //this formula find derivative of exponential function }   public void cumulativeprogressiveinterestvalue() //prints table of investment, showing value of on time {      int iteration = 0;     double realsum = investment;     int t = time;     int r = rate;     double = investment;     double ir = interestrate;     double decimalinterestrate = ir/100;      interest temp = new interest(i, ir, t, r);      arraylist<integer> time = new arraylist<integer>();     arraylist<double> derivative = new arraylist<double>();     arraylist<double> nominalinterestsum = new arraylist<double>();     arraylist<double> realinterestsum = new arraylist<double>();       for(int x = 0; x <= t; x++)     {         time.add(iteration);         iteration++;         derivative.add(temp.getderivative(x));         nominalinterestsum.add(i * (math.pow(((decimalinterestrate/r) + 1), (x * r))));         realinterestsum.add((((math.pow(((decimalinterestrate/r) + 1), (x * r)))/((math.pow(((inflation) + 1), (x))))) * i));         //realinterestsum.add(i * (math.pow((((decimalinterestrate - inflation)/r) + 1), (x * r))));     }      system.out.println("interestrate: " + ir + "\nrate: " + r + "\ninvestment: " + + "\ntime: " + t);     system.out.format("%-15s%-20s%-28s%-29s\n", "time", "d/dx(slope)", "nominal sum accumulation", " real sum accumulation");      for(int x = 0; x <= t; x++)     {         system.out.format("%-15d%-20f%-29f%-29f\n", time.get(x), derivative.get(x), nominalinterestsum.get(x), realinterestsum.get(x));     } }   private xydataset createdataset() {      final xyseries series1 = new xyseries("investment function");     final xyseries series2 = new xyseries("real investment function");     final xyseries series3 = new xyseries("derivative function");      int iteration = 0;     double realsum = investment;     int t = time;     int r = rate;     double = investment;     double ir = interestrate;     double decimalinterestrate = ir/100;      interest temp = new interest(i, ir, t, r);      arraylist<integer> time = new arraylist<integer>();     arraylist<double> derivative = new arraylist<double>();     arraylist<double> nominalinterestsum = new arraylist<double>();     arraylist<double> realinterestsum = new arraylist<double>();       for(int x = 0; x <= t; x++)     {         time.add(iteration);         iteration++;         derivative.add(temp.getderivative(x));         nominalinterestsum.add(i * (math.pow(((decimalinterestrate/r) + 1), (x * r))));         realinterestsum.add((((math.pow(((decimalinterestrate/r) + 1), (x * r)))/((math.pow(((inflation) + 1), (x))))) * i));         //realinterestsum.add(i * (math.pow((((decimalinterestrate - inflation)/r) + 1), (x * r))));     }      for(int x = 0; x <= t; x++)     {         series1.add(time.get(x), nominalinterestsum.get(x));         series2.add(time.get(x), realinterestsum.get(x));         series3.add(time.get(x), derivative.get(x));     }      xyseriescollection dataset = new xyseriescollection();     dataset.addseries(series1);     dataset.addseries(series2);     dataset.addseries(series3);      return dataset;  }  private jfreechart createchart(final xydataset dataset) {      final jfreechart chart = chartfactory.createxylinechart("interest investment", "time", "money", dataset, plotorientation.vertical, true, true, false);      chart.setbackgroundpaint(color.white);      xyplot plot = chart.getxyplot();     plot.setbackgroundpaint(color.lightgray);     plot.setdomaingridlinepaint(color.white);     plot.setrangegridlinepaint(color.white);      xylineandshaperenderer renderer = new xylineandshaperenderer();     renderer.setserieslinesvisible(0, false);     renderer.setseriesshapesvisible(1, false);     renderer.setseriesstroke(0, new basicstroke(4));     /*renderer.setserieslinesvisible(0, true);     renderer.setseriesshapesvisible(0, false);     renderer.setserieslinesvisible(1, false);     renderer.setseriesshapesvisible(1, true);*/        plot.setrenderer(renderer);      numberaxis rangeaxis = (numberaxis) plot.getrangeaxis();     rangeaxis.setstandardtickunits(numberaxis.createintegertickunits());      return chart;  }  public void displaychart(final string title) {      final xydataset dataset = createdataset();     final jfreechart chart = createchart(dataset);     final chartpanel chartpanel = new chartpanel(chart);     chartpanel.setpreferredsize(new java.awt.dimension(500, 270));     chartframe frame = new chartframe(title, chart);     frame.pack();      frame.setvisible(true); }   } 

how change style , coloring of lines being graphed. right now, there default line coloring , style. there way alter default.

how change style , coloring of lines being graphed.

you can change how each series rendered through xylineandshaperenderer (for instance 1 created in createchart method). example, change rendering of first series (index 0):

renderer.setseriespaint(0,color.cyan);//change rendered color cyan renderer.setserieslinesvisible(0, false);//no lines between points renderer.setseriesstroke(0, new basicstroke(4));//the thickness of lines being rendered 

see api of link provided more ways customize how each series rendered.


Comments

Popular posts from this blog

Java 3D LWJGL collision -

spring - SubProtocolWebSocketHandler - No handlers -

methods - python can't use function in submodule -