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]lt;fangyidong@yahoo.com.cn]gt;: 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.