Hi,
I was trying a demo application for StackedXYArea Chart and I have observed that
1. there was a white gap of stack between the first and second series and 2. there seems to be a line connecting for the last series and it is visible on the chart.
I want to get rid of above two...
Here's the code
public class StackedXYAreaChartDemo extends ApplicationFrame {
public StackedXYAreaChartDemo(String title) {
super(title);
SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy", Locale.UK);
XYSeries series1 = new XYSeries("Series 1", true, false);
XYSeries series2 = new XYSeries("Series 2", true, false);
XYSeries series3 = new XYSeries("Series 3", true, false);
XYSeries series4 = new XYSeries("Series 4", true, false);
try {
series1.add(sdf.parse("01-Aug-2002").getTime(), 101923);
series1.add(sdf.parse("02-Aug-2002").getTime(), 113125);
series1.add(sdf.parse("05-Aug-2002").getTime(), 122148);
series1.add(sdf.parse("06-Aug-2002").getTime(), 117434);
series1.add(sdf.parse("07-Aug-2002").getTime(), 133256);
series1.add(sdf.parse("08-Aug-2002").getTime(), 157654);
series1.add(sdf.parse("09-Aug-2002").getTime(), 195356);
series1.add(sdf.parse("12-Aug-2002").getTime(), 122567);
series2.add(sdf.parse("01-Aug-2002").getTime(), 32355);
series2.add(sdf.parse("02-Aug-2002").getTime(), 28543);
series2.add(sdf.parse("05-Aug-2002").getTime(), 29665);
series2.add(sdf.parse("06-Aug-2002").getTime(), 34567);
series2.add(sdf.parse("07-Aug-2002").getTime(), 32453);
series2.add(sdf.parse("08-Aug-2002").getTime(), 29455);
series2.add(sdf.parse("09-Aug-2002").getTime(), 28558);
series2.add(sdf.parse("12-Aug-2002").getTime(), 31084);
series3.add(sdf.parse("01-Aug-2002").getTime(), 45344);
series3.add(sdf.parse("02-Aug-2002").getTime(), 43222);
series3.add(sdf.parse("05-Aug-2002").getTime(), 44567);
series3.add(sdf.parse("06-Aug-2002").getTime(), 46435);
series3.add(sdf.parse("07-Aug-2002").getTime(), 42538);
series3.add(sdf.parse("08-Aug-2002").getTime(), 39553);
series3.add(sdf.parse("09-Aug-2002").getTime(), 44565);
series3.add(sdf.parse("12-Aug-2002").getTime(), 46548);
series4.add(sdf.parse("01-Aug-2002").getTime(), 55437);
series4.add(sdf.parse("02-Aug-2002").getTime(), 55745);
series4.add(sdf.parse("05-Aug-2002").getTime(), 52523);
series4.add(sdf.parse("06-Aug-2002").getTime(), 48563);
series4.add(sdf.parse("07-Aug-2002").getTime(), 34675);
series4.add(sdf.parse("08-Aug-2002").getTime(), 29455);
series4.add(sdf.parse("09-Aug-2002").getTime(), 43678);
series4.add(sdf.parse("12-Aug-2002").getTime(), 64377);
}
catch (ParseException e) {
e.printStackTrace();
}
DefaultTableXYDataset dataset = new DefaultTableXYDataset();
dataset.addSeries(series1);
dataset.addSeries(series2);
dataset.addSeries(series3);
dataset.addSeries(series4);
JFreeChart chart = createChart(dataset);
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension(600, 300));
setContentPane(chartPanel);
}
private JFreeChart createChart(TableXYDataset dataset) {
SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy", Locale.UK);
StandardXYToolTipGenerator ttg = new StandardXYToolTipGenerator(
StandardXYToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT,
sdf, NumberFormat.getInstance());
DateAxis xAxis = new DateAxis("Domain (X)");
xAxis.setTickMarkPosition(DateTickMarkPosition.START);
xAxis.setVerticalTickLabels(true);
xAxis.setTickUnit(new DateTickUnit(DateTickUnit.DAY, 1));
xAxis.setDateFormatOverride(new SimpleDateFormat("dd-MMM-yy"));
xAxis.setLowerMargin(0.01);
xAxis.setUpperMargin(0.01);
NumberAxis yAxis = new NumberAxis("Range (Y)");
yAxis.setAutoRangeIncludesZero(true);
StackedXYAreaRenderer renderer = new StackedXYAreaRenderer(
XYAreaRenderer.AREA_AND_SHAPES, ttg, null );
renderer.setSeriesPaint(0, new Color(255, 255, 180));
renderer.setSeriesPaint(1, new Color(206, 230, 255));
renderer.setSeriesPaint(2, new Color(255, 230, 230));
renderer.setSeriesPaint(3, new Color(206, 255, 206));
renderer.setShapePaint(Color.gray);
renderer.setShapeStroke(new BasicStroke(0.5f));
renderer.setShape(new Ellipse2D.Double(-3, -3, 6, 6));
renderer.setOutline(true);
XYPlot plot = new XYPlot(dataset, xAxis, yAxis, renderer);
plot.setForegroundAlpha(0.65f);
yAxis.configure();
JFreeChart chart = new JFreeChart(null, JFreeChart.DEFAULT_TITLE_FONT, plot, true);
return chart;
}
public static void main(String[] args) {
StackedXYAreaChartDemo demo = new StackedXYAreaChartDemo("Stacked Area XY Chart Demo");
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
}
Please refer to the code above and see if I have missed any thing.
Problem with StackedXYArea Chart - Please Help!!!
-
- JFreeChart Project Leader
- Posts: 11734
- Joined: Fri Mar 14, 2003 10:29 am
- antibot: No, of course not.
- Contact:
Definitely a bug. Thanks for the report, and especially the demo code. I filed it in the bug tracker so I can come back to it after I finish updating the web site and docs for the 1.0.6 release which just went up:
http://sourceforge.net/tracker/index.ph ... tid=115494
http://sourceforge.net/tracker/index.ph ... tid=115494
David Gilbert
JFreeChart Project Leader
Read my blog
Support JFree via the Github sponsorship program
JFreeChart Project Leader

