1.9. Feature-matrix for the library

JpGraph library is an OO graph library which makes it easy to both draw a "quick and dirty" graph with a minimum of code and quite complex graphs which requires a very fine grain of control. The library tries to assign sensible default values for most parameters hence making the learning curve quite flat since for most of the time very few commands are required to draw graphs with a pleasing esthetic look.

The following list makes no claim to be complete but it will give a birds view of some of the main (and in some cases unique) features of the library. The list will also illustrate the difference between the free and the pro-version.

Table 1.1. Feature matrix for JpGraph library

FeatureFree versionPro-version
Supports PNG, GIF, JPG image formats

Flexible scales, supports text-lin, text-log, lin-lin, lin-log, log-lin and log-log and integer scales

Supports both PNG, GIF and JPG graphic formats. Note that the available formats are dependent on the specific PHP installation where the library is used.

Supports caching of generated graphs to lessen burden of a HTTP server.

Supports batch mode to only generate images to a file

Supports client side image maps which makes it easy to produce drill down images.

Intelligent auto-scaling which gravitates towards esthetic values, i.e. multiples of 2:s and 5:s

Fully supports manual scaling, with fine grain control of position of ticks.

Multiple Y-axes (and scales) and multiple data series in the same graph

Supports background images with different formatting options

User specified grace for auto-scaling

Supports unlimited number of y-axes,

Supports, line-plots, filled line-plots, accumulated line-plots, bar plots, accumulated bar plots, grouped bar plots, error plots, line error plots, scatter plots, gantt-charts, radar plots, 2D and 3D pie charts.

Supports unlimited number of plots in each graph, makes it easy to compose complex graph which consists of several plot types

User specified position of axis

Designed as a flexible OO framework which makes it easy to add new types of plots

Supports automatic legend generation with custom formatting

Supports both vertical and horizontal grids

Supports anti-aliasing of lines

Supports background images as well as unlimited number of icons in the graph

Supports rotation of linear graphs

More then 400 named colors

Designed modularly - you don't have to include code which isn't used

Supports user specified callback for fine tuning scale labels

Support for text augmentation of graphs

Support for PHP Accelerator

Support for a large set of 1D barcodes (EAN-128, ...)

Support for Windrose plots

Support for discontinuities in graphs

Enhanced anti-aliasing for PieCharts

More advanced formatting of graph titles including 3D Bevel effects.

Additional 3D Bevel formatting feature for the entire Graph

Footer text on all graph types

Full support for color alpha blending

Advanced interpolation with cubic splines to get smooth curves from just a few data points.

Several different fill styles for line plots

Some image 3D effects built-in without external image manipulation programs

Additional built-in images for plot marks including 3D rendered markers like diamonds, squares, bevels, balls, pins etc

Support for calculation of linear regression

Text strings can be added to the plot using scale coordinates

Support for all primitive URL parameter types with CSIM graphs.

Hare/Niemeyer Integer compensation for Pie Plots

Possibility to use Vertical Gradient fill for line plots.

Improved error handling. The visual appearance of the error handling now tries to mimic any windows system window (in graphic)

Builtin support to display over 200 country flag and the possibility to use them as icons or markers in the graphs. All the flag images are builtin with JpGraph in an efficient pre-compiled data format.

Support for both Chinese and Japanese character sets

Support for custom TTF fonts

Support for 2D contour plots of 3D functions

Unlimited number of data points (up to memory and CPU limit of server)

Windrose plots

Odometer plots

Graphic excel like tables

1D Linear barcodes (e.g. EAN8,13,128, Code39, 128, 2of5, Code-11, Codabar etc)

2D-Barcode PDF417

2D-Barcode Datamatrix

2D-Barcode QR-code

Matrix visualization


In addition to these high level features the library has been designed to be orthogonal and consistent in its' naming convention. For example, to specify color each object (i.e. axis, grids, texts, titles etc) within the graph implements the method SetColor() with the same signature.