how to plot the lines in stackedarea chart

A discussion forum for JFreeChart (a 2D chart library for the Java platform).
Locked
sri@78
Posts: 6
Joined: Mon Dec 08, 2014 2:34 pm
antibot: No, of course not.

how to plot the lines in stackedarea chart

Post by sri@78 » Tue Dec 09, 2014 4:30 am

Hi Team,
I have been using JFreeChart for drawing different charts like bar chart and area chart. Its a great tool. But I need some guidance to achieve plotting the lines on area chart. Till now I am able to achieve as below. But how to achieve drawing lines for some particular dates. Also need to draw a thick out line for area chart. Presently I am not able to add the image to this for the exact requirement.

[img]


[/img]

Code: Select all

package demo;

import java.awt.Color;
import java.awt.Dimension;
import java.io.File;
import java.io.IOException;

import javax.swing.JPanel;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.CategoryMarker;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.Plot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.category.CategoryItemRenderer;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;

public class StackedAreaChartDemo1 extends ApplicationFrame
{
  public StackedAreaChartDemo1(String paramString)
  {
    super(paramString);
    JPanel localJPanel = createDemoPanel();
    localJPanel.setPreferredSize(new Dimension(500, 270));
    setContentPane(localJPanel);
  }

  public static CategoryDataset createDataset()
  {
    DefaultCategoryDataset localDefaultCategoryDataset = new DefaultCategoryDataset();
    localDefaultCategoryDataset.addValue(1800.0D, "S1", "Start");
    localDefaultCategoryDataset.addValue(3025.0D, "S1", "2015");
    localDefaultCategoryDataset.addValue(9325.0D, "S1", "2020");
    localDefaultCategoryDataset.addValue(15950.0D, "S1", "2025");
    localDefaultCategoryDataset.addValue(22900.0D, "S1", "2030");
    localDefaultCategoryDataset.addValue(30250.0D, "S1", "2035");
    localDefaultCategoryDataset.addValue(26000.0D, "S1", "2040");
    return localDefaultCategoryDataset;
  }

  public static JFreeChart createChart(CategoryDataset paramCategoryDataset)
  {
    JFreeChart localJFreeChart = ChartFactory.createStackedAreaChart("", "", "Dollars", paramCategoryDataset, PlotOrientation.VERTICAL, true, true, false);
    
    
    CategoryPlot localCategoryPlot = (CategoryPlot)localJFreeChart.getPlot();
   
    localCategoryPlot.setForegroundAlpha(0.85F);
    localCategoryPlot.setBackgroundPaint(new Color(255,255,255));
    localCategoryPlot.setDomainGridlinesVisible(false);
    localCategoryPlot.setRangeGridlinesVisible(true);
    localCategoryPlot.setRangeGridlineStroke(Plot.DEFAULT_OUTLINE_STROKE);
    localCategoryPlot.setRangeGridlinePaint(new Color(230,230,230));
    localCategoryPlot.setOutlineVisible(false);
    
    
    CategoryAxis localCategoryAxis = localCategoryPlot.getDomainAxis();
    localCategoryAxis.setLowerMargin(-0.11D);
    localCategoryAxis.setUpperMargin(-0.08D);
    localCategoryAxis.setCategoryMargin(0.0D);
    //NumberAxis localNumberAxis = (NumberAxis)localCategoryPlot.getRangeAxis();
    //localNumberAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
    localCategoryAxis.setAxisLineVisible(false);
    
    ValueAxis localRangeAxis = localCategoryPlot.getRangeAxis();
    
    localRangeAxis.setAxisLineVisible(false);

    
    CategoryItemRenderer localCategoryItemRenderer = localCategoryPlot.getRenderer();
    localCategoryItemRenderer.setBaseItemLabelsVisible(false);
    //localCategoryItemRenderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
    //localCategoryItemRenderer.setBaseItemLabelPaint(Color.WHITE);
    //localCategoryItemRenderer.drawOutline(g2, localCategoryPlot, arg2);
    localCategoryItemRenderer.setSeriesPaint(0, new Color(231, 231, 231));
 /*   CategoryMarker valuemarker = new CategoryMarker("2015");
    valuemarker.setPaint(Color.GRAY);
    valuemarker.setAlpha(0.8F);
    valuemarker.setDrawAsLine(true);
    valuemarker.setLabel("Today");
   
    localCategoryPlot.addDomainMarker(valuemarker);*/

    
    return localJFreeChart;
  }

  public static JPanel createDemoPanel()
  {
    JFreeChart localJFreeChart = createChart(createDataset());
    //localJFreeChart.setBackgroundPaint(new Color(255,255,255));

    return new ChartPanel(localJFreeChart);
  }

  public static void main(String[] paramArrayOfString)
  {
	  JFreeChart localJFreeChart = createChart(createDataset());
	  localJFreeChart.clearSubtitles();

	  
	  try{
		  ChartUtilities.saveChartAsPNG(new File("D:\\StackedAreaChartDemo1.png"), localJFreeChart, 331, 220);
	  }catch(IOException io){
		  System.out.println("*******Exception occured*****");
	  }
  }
}

Locked