java - Combined bar and line chart JfreeChart. Trying to make a 3 point average with the line chart. The values do not line up correctly -
i have dataset barchart lets say:{1,2,3,4,5,6,7,8,9}. have line chart suppose 3 point average, value of barchart @ index, , 2 values before that, divided three.
the line chart should nonexistent corresponding barchart values 1 , 2, , begin @ position 3. tried using try , catch block , if statement put values in if possible, when did still started line graph @ position 1 , stretched out fit graph.
how can line chart starts @ column 3 , goes on there?
heres have right now:
public class mocktest extends jframe{
public mocktest() { //mock data defaultcategorydataset dataset = new defaultcategorydataset(); defaultcategorydataset dataset2 = new defaultcategorydataset(); int[] times = new int[]{1,2,3,4,5,6,7,8,9}; ( int = 0; < times.length; i++ ){ dataset.addvalue(times[i], "time", "hour" + string.valueof(i+1));; if(i>2) { dataset2.addvalue((times[i] + times[i-1] + times[i-2])/3, "time", "hour" + string.valueof(i+1)); } } categoryplot plot = new categoryplot(); //create plot //add first dataset, , render bar values categoryitemrenderer renderer = new barrenderer(); plot.setdataset(0,dataset); plot.setrenderer(0,renderer); //add second dataset, render lines categoryitemrenderer renderer2 = new lineandshaperenderer(); plot.setdataset(1, dataset2); plot.setrenderer(1, renderer2); //set axis categoryaxis domainaxis = new categoryaxis("time"); numberaxis rangeaxis = new numberaxis("value"); plot.setdomainaxis(0,domainaxis); plot.setrangeaxis(rangeaxis); jfreechart chart = new jfreechart(plot); chartpanel chartpanel = new chartpanel( chart ); this.setcontentpane(chartpanel); }
** figured out, put if(i<2) statement, add else statement , put in null values.
i ended using try , catch block, if , else have worked. dont want values put null value.
for(int i=0;i<ints1.size();i++) { dataset.addvalue(ints1.get(i), "good product", "hour" + string.valueof(i+1)); dataset.addvalue(ints2.get(i), "bad product", "hour" + string.valueof(i+1)); try{ dataset2.addvalue((ints1.get(i) + ints1.get(i-1) + ints1.get(i-2))/3, "time", "hour" + string.valueof(i+1)); } catch(arrayindexoutofboundsexception e) { dataset2.addvalue(null, "time", "hour" + string.valueof(i+1)); } }
Comments
Post a Comment