Can u suggest me how to go about the problem?
I want to plot two different lines with different renderer types into single JFree chart.One line i want to plot as without default shapes.and the other line, I want to plot as with default shapes.
Pls. make a note that is I need to get x-axis length as 100%.
Here, I have added the code which i have written:
Please take a look at this code and suggest me how to go about this further:
Code: Select all
//Create and populate an XY series Collection
XYSeries dataSeries = new XYSeries("Index");
XYSeries benchData = new XYSeries("BenchMarkIndex");
Iterator iter = lstSummary.listIterator();
while (iter.hasNext())
{
SatisfactionIndex indexSummary = (SatisfactionIndex)iter.next();
dataSeries.add(getDate(indexSummary.getSurveyDate()).getTime(), indexSummary.getSatisfactionIndex());
benchData.add(getDate(indexSummary.getSurveyDate()).getTime(),indexSummary.getIndexValue());
}
XYSeriesCollection xyDataset = new XYSeriesCollection(dataSeries);
XYSeriesCollection xybenchdata = new XYSeriesCollection(benchData);
SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy", Locale.UK);
StandardXYToolTipGenerator ttg = new StandardXYToolTipGenerator(
StandardXYToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT, sdf, NumberFormat.getInstance());
//Create the chart object
ValueAxis timeAxis = new DateAxis("");
NumberAxis valueAxis = new NumberAxis("");
valueAxis.setAutoRangeIncludesZero(true); // override default
StandardXYItemRenderer renderer = new StandardXYItemRenderer(
StandardXYItemRenderer.LINES + StandardXYItemRenderer.SHAPES, ttg, null);
StandardXYItemRenderer renderer1 = new StandardXYItemRenderer(
StandardXYItemRenderer.LINES , ttg, null);
renderer.setShapesFilled(true);
XYPlot plot = new XYPlot(xyDataset, timeAxis, valueAxis, renderer);
XYPlot plot1 = new XYPlot(xybenchdata, timeAxis, valueAxis, renderer1);
// HmsPlotListener hpl=new HmsPlotListener(plot1);
// plot.addChangeListener(hpl);
CombinedRangeXYPlot crxyplot=new CombinedRangeXYPlot(valueAxis);
crxyplot.add(plot,3);
crxyplot.add(plot1,1);
JFreeChart chart = new JFreeChart("", JFreeChart.DEFAULT_TITLE_FONT, crxyplot , true);
// JFreeChart chart1 = new JFreeChart("", JFreeChart.DEFAULT_TITLE_FONT, plot1 , false);
chart.setBackgroundPaint(java.awt.Color.white);
ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
BufferedImage chartImage = chart.createBufferedImage(400, 250, info);
//Put the chart as BufferedImage in session,
//thus making it available for the image reading action Action.
HttpSession session = req.getSession(false);
session.setAttribute("chartImage", chartImage);
//Tool tip stuff
StringWriter oStringWriter = new StringWriter() ;
PrintWriter printwriter = new PrintWriter( oStringWriter );
ChartUtilities.writeImageMap(printwriter, "imageMap", info, false);
String strMapInfo = oStringWriter.toString() ;
req.setAttribute("mapInfo",strMapInfo);