JChart2D is a easy to use component for displaying two- dimensional traces in a coordinate system written in Java. It supports real-time (animated) charting, custom trace rendering, Multithreading, viewports, automatic scaling and labels.
Former UI controls (right click context menu, file menu) have been ported to the subproject jchart2d-uimenu (https://sourceforge.net/projects/jchart2d-uimenu.jchart2d.p/) for the benefit of having no dependencies to 3rd party libraries.
Features
- Easy usage: only a few lines of code are necessary to use a chart. No complex specification of data points, labels or grids necessary. This is done per default and may optionally be configured.
- Real time performance (e.g. for telemetry at www.lionsracing.de)
- Multiple traces with different behavior may be added to a single chart.
- Automatic choice of the unit - prefix (multiplier) according to the scientific unit system (nano , milli, tera, ..).
- Label formatter for scale labels via java.text.NumberFormat or java.text.DateFormat.
- Chooseable display of grids, labels, labeled scalepoints, coordinate tooltips, ... .
- Traces may be rendered via lines, discs, dots (is a disc with radius 1) or filled polygons. Additionally strokes may be specified (only useful for lines I think). An open interface for further graphical representations of traces exists.
- Different axis implementations (settable from UI): linear, log e and log 10.
- Multiple axes on top,bottom, left and right side. Traces may be assigned to an x and an y axis that has been assigned to the chart and will be related to them.
- Different viewport implementations: Zooming (ZoomableChart), enforcing visible bounds even if data does not fill them,...
- Exact visualisation of labeled scalepoints. No label of a scalepoint is ever rounded to the next current chosen decimal, instead the scalepoint is shifted to a position which represents an exact decimal.
- Fully resizable. The amount of labeled scalepoints may increase on choosing a bigger size.
- Deadlock - safe. Even this is hard to claim because testing depends on runtime behaviour of the current system, i did not encounter a deadlock situation while letting several threads modifiy traces all contained in the same chart (only the awt painting system may get pretty busy).
- Trace - implementations with different behaviour: unordered, ringbuffered, ordered, bijective, ...
- Highly configurable error bar API.
- Charts may be saved as images (jpeg, gif, jpg,... depending on the image writers of the java VM implementation), a snapshot UI control allows this.
- Charts may be saved as encapsulated postscript files (eps) thanks to Apache XML Graphics Commons.
- Charts may be printed (which allows to print them to a pdf driver too).
License
GNU Library or Lesser General Public License version 2.0 (LGPLv2)Follow JChart2D
Other Useful Business Software
MongoDB Atlas | Run databases anywhere
MongoDB Atlas allows you to build and run modern applications across 125+ cloud regions, spanning AWS, Azure, and Google Cloud. Its multi-cloud clusters enable seamless data distribution and automated failover between cloud providers, ensuring high availability and flexibility without added complexity.
Rate This Project
Login To Rate This Project
User Reviews
-
Very easy to use real-time plotting library.
-
Jchart2d works great.
-
Great and excellent chart lib for live datastreams! Thank you!!! After 30 min for study some examples and the integration to my project, i got a very good and usable livechart! Im very impressed ! This lib has also a low resource consumption: with 12000 tuples in combination with a RXTX - usb datastream, other swing components and a model with O(n) realtime calculations caused in summary 60 Mb of RAM usage. The cpu consumptions is also very low.
-
Excellent project, just wish that it could use a little less resources
-
Excellent project, just wish that it could use a little less resources