Skip to main content

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.

 * 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.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) {
        final CategoryDataset dataset = createDataset();
        final JFreeChart chart = createChart(title,categoryAxisLabel, valueAxisLabel,dataset);
        final ChartPanel chartPanel = new ChartPanel(chart);
        chartPanel.setPreferredSize(new Dimension(500, 270));

     * 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);
        CategoryPlot categoryplot = jfreechart.getCategoryPlot();
        categoryplot.setBackgroundPaint(new Color(238, 238, 255));
        //Manages the Domain(x-axis) label position
        CategoryAxis categoryaxis = categoryplot.getDomainAxis();
        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");



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

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


Post a comment

Thanks for your valuable comments.

Popular posts from this blog

Odoo: Qweb Templates Cache Issue

Hi Everyone, Today I was working on a hotel booking template in Odoo and changes made in the Qweb template(.xml) were not reflecting on updating module with odoo service restart. Tried few times without any success :(. Finally, I decided to delete the old template from Odoo backend and then update module again and it worked like a charm!! :) Steps to delete template from backend: Settings --> User Interface --> Views --> Search by template name Delete the used template. Although it's a small post, but I'm sure it will meet the purpose and help someone in the future. Thanks!!! Enjoy Programming!! :) Reference Links: ===================================

Odoo12/13: Add an extra action in the tree view action button

This post will help you to add an action window in Odoo. Odoo13: <act_window id="action_make_bank_payment"              name="Do Bank Payment"              res_model="account.ob.payment"              binding_model="account.move"              view_mode="form"              target="new"              binding_views="list,form"              domain="[('type','=', 'in_invoice')]"              groups="account.group_account_user" /> Odoo12: <act_window id="action_make_bank_payment"              name="Do Bank Payment"              res_model="account.ob.payment"             view_mode="tree,form"              domain="[('type','=', 'in_invoice')]"              groups="account.group_account_user" /> Thanks!!! Enjoy Programming!! :) Reference:

Odoo/OpenERP: one2one relational field example

one2one relational field is deprecated in OpenERP version>5 but you can achieve the same using many2one relational field. You can achieve it in following two ways : 1) using many2one field in both the objects ( ) 2)  using inheritance by deligation You can easily find the first solution with little search over internet so let's start with 2nd solution. Scenario :  I want to create a one2one relation between two objects of openerp hr.employee and hr.employee.medical.details What I should do  i. Add _inherits section in hr_employee class ii. Add field medical_detail_id in hr_employee class class hr_employee(osv.osv):     _name = 'hr.employee'     _inherits = {' hr.employee.medical.details ': "medical_detail_id"}     _inherit = 'hr.employee'         _columns = {              'emp_code':fields.char('Employee Code', si