# Module org.jfree.chart3d

module org.jfree.chart3d
Orson Charts is a chart library for the Java(tm) platform (module name `org.jfree.chart3d`) 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;

Samples

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 `org.jfree.chart3d` module to your application 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 `JFree Demos` project at GitHub. 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.

## Packages

Exports
Package
Description
org.jfree.chart3d
Core classes, including `Chart3D`, `Chart3DPanel` and `Chart3DFactory`.
org.jfree.chart3d.axis
Axes (`CategoryAxis3D`, `NumberAxis3D` and `LogAxis3D`) plus supporting classes and interfaces.
org.jfree.chart3d.data
Core data structures used as the building blocks for datasets in Orson Charts.
org.jfree.chart3d.data.category
Datasets that can be used by the `CategoryPlot3D` class.
org.jfree.chart3d.data.function
Representation of functions in the form `y = f(x, z)`.
org.jfree.chart3d.data.xyz
Datasets that can be used by the `XYZPlot` class.
org.jfree.chart3d.export
Classes for exporting charts.
org.jfree.chart3d.graphics2d
Utility classes related to 2D graphics.
org.jfree.chart3d.graphics3d
The core 3D graphics rendering engine which is fully implemented using the Java2D (Graphics2D) API.
org.jfree.chart3d.graphics3d.swing
Components to display 3D graphics in Swing applications.
org.jfree.chart3d.interaction
Classes that support user interaction with charts.
org.jfree.chart3d.label
Classes related to chart labels.
org.jfree.chart3d.legend
Classes related to chart legends.
org.jfree.chart3d.marker
Provides value and range marker support for the axes on category and XYZ plots.
org.jfree.chart3d.plot
Standard plot types (`PiePlot3D`, `CategoryPlot3D` and `XYZPlot`) that can be used with the `Chart3D` class.
org.jfree.chart3d.renderer
Base package for renderer support.
org.jfree.chart3d.renderer.category
Renderers that can be used with the `CategoryPlot3D` class.
org.jfree.chart3d.renderer.xyz
Renderers that can be used with the `XYZPlot` class.
org.jfree.chart3d.style
Classes for controlling chart styles.
org.jfree.chart3d.table
Classes and interfaces for constructing tables for display to the user.