below is the code to display GroupedStacked Bar chart using JFreeChart Code:public void generateStackedChart(OutputStream out, Object data) { try { JFreeChart chart = ChartFactory.createStackedBarChart( "Alerts as % of Total Programs", "Alerts", "%", getStackedDataSet(), PlotOrientation.VERTICAL, true, // include legend false, // tooltips false); // urls GroupedStackedBarRenderer renderer = new GroupedStackedBarRenderer(); KeyToGroupMap map = new KeyToGroupMap("G1"); map.mapKeyToGroup("Facility 1(ONE)", "G1"); map.mapKeyToGroup("Facility 2(ONE)", "G1"); map.mapKeyToGroup("Facility 3(ONE)", "G1"); map.mapKeyToGroup("Facility 4(ONE)", "G1"); map.mapKeyToGroup("Facility 1(ALL)", "G2"); map.mapKeyToGroup("Facility 2(ALL)", "G2"); map.mapKeyToGroup("Facility 3(ALL)", "G2"); map.mapKeyToGroup("Facility 4(ALL)", "G2"); renderer.setSeriesToGroupMap(map); CategoryPlot plot = (CategoryPlot) chart.getPlot(); plot.setRenderer(renderer); BufferedImage buffImg = chart.createBufferedImage(500, // width 375, // height BufferedImage.TYPE_INT_RGB, // image type null); ImageIO.write(buffImg, "jpeg", out); } catch (IOException e) { e.printStackTrace(); }}private DefaultCategoryDataset getStackedDataSet() { DefaultCategoryDataset dataset = new DefaultCategoryDataset(); // dataset.addValue(1.0, "Row 1", "Column 1"); dataset.addValue(10.0, "Facility 1(ONE)", "Jan 2008"); dataset.addValue(50.0, "Facility 1(ONE)", "Feb 2008"); dataset.addValue(30.0, "Facility 1(ALL)", "Jan 2008"); dataset.addValue(25.0, "Facility 1(ALL)", "Feb 2008"); dataset.addValue(20.0, "Facility 2(ONE)", "Jan 2008"); dataset.addValue(30.0, "Facility 2(ONE)", "Feb 2008"); dataset.addValue(20.0, "Facility 2(ALL)", "Jan 2008"); dataset.addValue(30.0, "Facility 2(ALL)", "Feb 2008"); dataset.addValue(20.0, "Facility 3(ONE)", "Jan 2008"); dataset.addValue(30.0, "Facility 3(ONE)", "Feb 2008"); dataset.addValue(20.0, "Facility 3(ALL)", "Jan 2008"); dataset.addValue(30.0, "Facility 3(ALL)", "Feb 2008"); dataset.addValue(20.0, "Facility 4(ONE)", "Jan 2008"); dataset.addValue(30.0, "Facility 4(ONE)", "Feb 2008"); dataset.addValue(20.0, "Facility 4(ALL)", "Jan 2008"); dataset.addValue(20.0, "Facility 4(ALL)", "Feb 2008"); return dataset;}