Hi all, following is the example of how to draw 3D Line Chart in Java using JFreeChart library.
LineChart3DDemo.java
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 :)
thank you it works :)
ReplyDeleteCheers!!!!
Delete