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.