home | developer | tutorial | examples | download  

JOpenChart Library and Toolkit

Graph Icon

Version 0.94 Released

JOpenChart 0.94 has taken a while, a bit longer than planned actually, due to university, exams and annoying things like that. But here it is and it brings features with it:

  • 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.

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. That's pretty easy, isn't it?

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.

Graph Icon

Included or planned functionalities of the library and the toolkit:

  • 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


Project News

Project Stats

Tracker Tracker

 - Bugs ( 3 open / 20 total )
Bug Tracking System

 - Support Requests ( 4 open / 10 total )
Tech Support Tracking System

 - Patches ( 3 open / 6 total )
Patch Tracking System

 - Feature Requests ( 3 open / 4 total )
Feature Request Tracking System

Forums Forums ( 45 messages in 2 forums )
Docs Doc Manager
Mail Lists Mailing Lists ( 2 mailing lists )
Screenshots Screenshots
Tasks Task Manager
There are no public subprojects available
CVS CVS Tree ( 337 commits, 103 adds ) known bug
FTP Released Files

SourceForge Logo

Sebastian Müller