Drawing graphs in PHP with JpGraph
“JpGraph is an Object-Oriented Graph creating library for PHP >= 5.1 The library is completely written in PHP and ready to be used in any PHP scripts (both CGI/APXS/CLI versions of PHP are supported).”
If you want to draw graphs in PHP, JpGraph is a good choice. Very easy to use yet powerful.
Here I suppose you have a
public_html directory in your HOME and your PHP scripts are in
Download the latest jpgraph archive, put it in
~/public_html/lib and extract it. Now you will have a directory like
~/public_html/lib/jpgraph-3.5.0b1. Put a symbolic link on it with a simpler name:
cd ~/public_html/lib ln -s jpgraph-3.5.0b1 jpgraph
Verify if the directory jpgraph has the correct permissions. Directories must be 755, while files must be 644. To correct permissions, you can use this script:
#!/bin/bash # setjog_here.sh # # place it in ~/public_html/lib/jpgraph and launch it # it'll set the permissions recursively find . -type d -print0 | xargs -0 chmod 755 find . -type f -print0 | xargs -0 chmod 644 chmod 755 . chmod u+x $0
Test an example
~/public_html. Modify the include lines:
# original: #require_once ('jpgraph/jpgraph.php'); #require_once ('jpgraph/jpgraph_line.php'); # new: require_once ('lib/jpgraph/src/jpgraph.php'); require_once ('lib/jpgraph/src/jpgraph_line.php');
Now call this file from your browser. The URL must be similar to this: http://localhost/~jabba/example0.php.
You might get an error saying “The function imageantialias() is not available in your PHP installation. Use the GD version that comes with PHP and not the standalone version.”
Don’t worry. Open the file
~/public_html/lib/jpgraph/src/gd_image.inc.php, find the function
SetAntiAliasing and comment this line out like this:
// JpGraphError::RaiseL(25128);//('The function imageantialias() is not available in your PHP installation. Use the GD version that comes with PHP and not the standalone version.')
Update (20110215): Comment out just this line, not the whole function :)
This is a quick fix; we disabled antialiasing.
This subsection was updated, the original text was not clear. Thanks to Jon R. for pointing that out.