JOpenChart provides a Java library and toolkit for generating and embedding charts into applications.
JOpenChart is a free Java Toolkit and library for embedding charts into different kinds of applications, no matter if they are server side, desktop or web applications. Commercial solutions are pretty expensive and at the time I started working on JOpenChart, there was no satisfying open source solution available.
Currently, the library provides all the functionality to draw different kinds of charts, like line, bar, pie and plot charts. Additionally, the class structure includes the necessary classes for the encapsulation of sets of data and the classes for all parts of a typical chart, like a coordinate system, coordinate axes, legends, title and chart renderers.
I put great effort into a good design, ie understandable, logical class structures, elegant interfaces, use of abstract classes etc. The library is easily extendable to provide your own functionalities. This is best illustrated by noting, that all the Renderer classes, which paint the charts, have about 150 - 200 lines of code.
Furthermore, a few more or less proof-of-concept classes are finished that demonstrate how to embed charts into web applications or Swing applications using Servlets or a JComponent respectively.
Here are some key features of "JOpenChart":
· rendering of pie charts, line charts, bar charts and plot charts
· easy extensibility using a simple Renderer interface API
· linear and logarithmic y-axis
· different data model classes for implementing numerical data sets, data sets with non-numerical x-axis values, dynamic data sets for displaying incoming measured data, SQL database query results.
· polynomial and spline interpolation of data sets and linear regression of measured data
· binding data sets to one of two y-axes with different scales
· plotting of mathematical functions given as String parameters
· exporting diagrams as image files at least using PNG or JPEG compression and whatever encoding the Java Advanced Imaging Library supports
· Servlet Toolkit for the easy inclusion of charts into web applications
· Swing components to integrate charts in Swing applications
What's New in This Release:
· Now renders stacked bar charts and radar charts.
· Fully automatic, and good looking, margin adaption. No more cut-off labels.
· Add data models with differently sized data sets.
· Support for editable data models, enabling real time updated GUI charts, see GraphFrame.java as an example and the TestGUI ant target.
· Now allows manually setting of maximum and minimum x- and y-values, allowing for zooming.
· JDBCPlotter.java allows plotting of SQL query results.
· Various options for controlling rendering style, esp. of bar charts and coordinate systems, see FunctionPlotApplet.java and always TestChart.java.
· e.g Setting the axis units
· and displaying sums on top of bars etc.
· Choose preset shapes and arbitrary colors for your data sets and plot charts, easily implement your own shapes
· RowColorModel is not a singleton instance anymore
· I externalized the ChartDataModelConstraints class, you can provide your own implementation or extend the existing ones. See StackedChartDataModelConstraints as an example.
· Web archive (war file) now supports Tomcat 3.x and 4.x.