Skip navigation links
Orson Charts is a chart library for the Java(tm) platform that can generate a wide variety of 3D charts for use in client-side applications (JavaFX and Swing) and server-side applications (with export to SVG, PDF, PNG and JPEG formats).

See: Description

Packages 
Package Description
com.orsoncharts
Core classes, including Chart3D, Chart3DPanel and Chart3DFactory.
com.orsoncharts.axis
Axes (CategoryAxis3D, NumberAxis3D and LogAxis3D) plus supporting classes and interfaces.
com.orsoncharts.data
Core data structures used as the building blocks for datasets in Orson Charts.
com.orsoncharts.data.category
Datasets that can be used by the CategoryPlot3D class.
com.orsoncharts.data.function
Representation of functions in the form y = f(x, z).
com.orsoncharts.data.xyz
Datasets that can be used by the XYZPlot class.
com.orsoncharts.fx
Custom viewing component (and support classes) for JavaFX.
com.orsoncharts.graphics3d
The core 3D graphics rendering engine which is fully implemented using the Java2D (Graphics2D) API.
com.orsoncharts.graphics3d.swing
Components to display 3D graphics in Swing applications.
com.orsoncharts.interaction
Classes that support user interaction with charts.
com.orsoncharts.interaction.fx
Interaction classes that are specific to JavaFX.
com.orsoncharts.label
Classes related to chart labels.
com.orsoncharts.legend
Classes related to chart legends.
com.orsoncharts.marker
Provides value and range marker support for the axes on category and XYZ plots.
com.orsoncharts.plot
Standard plot types (PiePlot3D, CategoryPlot3D and XYZPlot) that can be used with the Chart3D class.
com.orsoncharts.renderer
Base package for renderer support.
com.orsoncharts.renderer.category
Renderers that can be used with the CategoryPlot3D class.
com.orsoncharts.renderer.xyz
Renderers that can be used with the XYZPlot class.
com.orsoncharts.style
Classes for controlling chart styles.
com.orsoncharts.table
Classes and interfaces for constructing tables for display to the user.
com.orsoncharts.util
General and utility classes.
com.orsoncharts.util.json
A local copy of the JSON.simple project by FangYidong<fangyidong@yahoo.com.cn>: https://code.google.com/p/json-simple/.
com.orsoncharts.util.json.parser
A local copy of the JSON.simple project by FangYidong<fangyidong@yahoo.com.cn>: https://code.google.com/p/json-simple/.
Orson Charts is a chart library for the Java(tm) platform that can generate a wide variety of 3D charts for use in client-side applications (JavaFX and Swing) and server-side applications (with export to SVG, PDF, PNG and JPEG formats). Key features include:

  1. multiple chart types: pie charts, bar charts (regular and stacked), line charts, area charts, scatter plots and surface charts;
  2. a built-in lightweight 3D rendering engine - no additional or complex dependencies, resulting in easy deployment;
  3. mouse-enabled chart viewing components (for both JavaFX and Swing) provide 360 degree rotation and zooming for precise end-user view control;
  4. auto-adaptive axis labeling;
  5. easy export of charts to PDF and SVG for reporting;
  6. a clean and well-documented API, with a high degree of chart configurability;
Here are some samples (which may not be visible if your browser does not support SVG, in which case you should get a new browser):


Orson Charts includes only 3D charts, for 2D charts we recommend the excellent JFreeChart library (by the same author).

There is also a version of Orson Charts available for the Android platform.

Getting Started

To get started with Orson Charts, you simply need to add the orsoncharts-1.x.jar file to your classpath and begin coding. Your first step is to set up some data that you want to display. Orson Charts reads data through a dataset interface - there are three key interfaces, one that is used for pie charts (PieDataset3D), one that is used for bar charts and other category based charts (CategoryDataset3D) and one for plots that use numerical data (XYZDataset). There are standard implementations of these interfaces includes in the library, making it straightforward to create a new dataset. Here is an example for a pie chart:

  StandardPieDataset3D dataset = new StandardPieDataset3D();
  dataset.add("Milk Products", 625);
  dataset.add("Meat", 114);


Once your dataset is ready, the next step is to create a chart object - here the Chart3DFactory class can help, as it has utility methods to create some standard chart types:

  Chart3D chart = Chart3DFactory.createPieChart("Title", "Subtitle", dataset);

Finally, if you are developing a Swing application, you will want to place the chart somewhere in your UI. Here the Chart3DPanel class can be used:

  Chart3DPanel chartPanel = new Chart3DPanel(chart);

You can find complete examples in the com.orsoncharts.demo package. You are encouraged to explore these example programs and review these Javadoc pages to learn more about Orson Charts.

More Information

Please visit http://www.object-refinery.com/orsoncharts/index.html for the latest information about Orson Charts.
Skip navigation links