Saturday, 12 May 2012

Draw 3D Line Chart Using JFreeChart in Java

Hi all, following is the example of how to draw 3D Line Chart in Java using JFreeChart library.

LineChart3DDemo.java


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package drawgraph;

/**
 *
 * @author sshankar
 */

import java.awt.Color;
import java.awt.Dimension;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
import org.jfree.chart.axis.AxisLocation;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;

/**
 * A simple demonstration application showing how to create a line chart using data from a
 * {@link CategoryDataset}.
 */

public class LineChart3DDemo extends ApplicationFrame {

    /**
     * Creates a new demo.
     *
     * @param title  the frame title.
     */

    static final DefaultCategoryDataset dataset = new DefaultCategoryDataset();
   
    public LineChart3DDemo(String title,String categoryAxisLabel, String valueAxisLabel) {
   
        super(title);
        final CategoryDataset dataset = createDataset();
        final JFreeChart chart = createChart(title,categoryAxisLabel, valueAxisLabel,dataset);
        final ChartPanel chartPanel = new ChartPanel(chart);
        chartPanel.setPreferredSize(new Dimension(500, 270));
        setContentPane(chartPanel);
    }

    /**
     * Creates a sample dataset.
     *
     * @return The dataset.
     */
    static private CategoryDataset createDataset() {
       
        dataset.addValue(1.0, "Series1", "Category1");
        dataset.addValue(4.0, "Series1", "Category2");
        dataset.addValue(3.0, "Series1", "Category3");
        dataset.addValue(5.0, "Series1", "Category4");
        dataset.addValue(5.0, "Series1", "Category5");

        dataset.addValue(5.0, "Series2", "Category1");
        dataset.addValue(7.0, "Series2", "Category2");
        dataset.addValue(6.0, "Series2", "Category3");
        dataset.addValue(8.0, "Series2", "Category4");
        dataset.addValue(4.0, "Series2", "Category5");

        dataset.addValue(4.0, "Series3", "Category1");
        dataset.addValue(3.0, "Series3", "Category2");
        dataset.addValue(2.0, "Series3", "Category3");
        dataset.addValue(3.0, "Series3", "Category4");
        dataset.addValue(6.0, "Series3", "Category5");
       
        return dataset;
               
    }
   
    /**
     * Creates a sample chart.
     *
     * @param dataset  a dataset.
     *
     * @return The chart.
     */
    private static JFreeChart createChart(String title,String categoryAxisLabel, String valueAxisLabel, CategoryDataset dataset) {
       
        JFreeChart jfreechart = ChartFactory.createLineChart3D(title, categoryAxisLabel, valueAxisLabel, dataset, PlotOrientation.VERTICAL, true, true, true);
        jfreechart.setBackgroundPaint(Color.WHITE);
       
        CategoryPlot categoryplot = jfreechart.getCategoryPlot();
        categoryplot.setBackgroundPaint(new Color(238, 238, 255));
        categoryplot.setDomainAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
               
        //Manages the Domain(x-axis) label position
        CategoryAxis categoryaxis = categoryplot.getDomainAxis();
        categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.DOWN_45);
   
        return jfreechart;
    }
    
    /**
     * Starting point for the demonstration application.
     *
     * @param args  ignored.
     */
    public static void main(final String[] args) {

        final LineChart3DDemo demo = new LineChart3DDemo("3D Line Chart Demo","Category","Values");
        demo.pack();
        RefineryUtilities.centerFrameOnScreen(demo);
        demo.setVisible(true);

    }

}

After successfully running the file, you will get following output :



Thanks!!!!!!!!!!!  Enjoy Programming :)



2 comments:

Thanks for your valuable comments.

Odoo 10: Close wizard and open standard form

Hi, Today we are going to learn how to open standard form after saving data in wizard. Let's say I have created an wizard to fill bas...