473,379 Members | 1,326 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,379 software developers and data experts.

Drawing graphs with PHP

Hi all,

i have a question:

is there any librairy for drawing graphs with PHP? Not graphs like
histogram or alike, but like a set of shapes linked together in a certain
way (like a flow chart or call graph).

I have found a script to handle the graph in memory but i can already do
that, my problem is to draw it (it an optimal way, and without crossing
links if possible).

Thx
--
TheDD
Jul 17 '05 #1
6 11898
On Sun, 09 Nov 2003 10:49:52 +0100, TheDD wrote:
Hi all,

i have a question:

is there any librairy for drawing graphs with PHP? Not graphs like
histogram or alike, but like a set of shapes linked together in a certain
way (like a flow chart or call graph).

I have found a script to handle the graph in memory but i can already do
that, my problem is to draw it (it an optimal way, and without crossing
links if possible).

Thx

Not 100% sure if it covers your req's.. but have a google for 'JPGraph'.
This might be just what you're looking for =)
HTH.

Regards,

Ian

--
Ian.H [Design & Development]
digiServ Network - Web solutions
www.digiserv.net | irc.digiserv.net | forum.digiserv.net
Programming, Web design, development & hosting.

Jul 17 '05 #2
On Sun, 9 Nov 2003 10:49:52 +0100, TheDD <pa***@email.com> wrote:
i have a question:

is there any librairy for drawing graphs with PHP? Not graphs like
histogram or alike, but like a set of shapes linked together in a certain
way (like a flow chart or call graph).

I have found a script to handle the graph in memory but i can already do
that, my problem is to draw it (it an optimal way, and without crossing
links if possible).


The most popular free directed graph drawing library is the 'dot' program from
the Graphviz library:

http://www.research.att.com/sw/tools/graphviz/

It does a decent enough job for small-ish graphs (<50 nodes), can output in
various formats, including HTML image maps so you can make the nodes clickable.

Basically you'll have to output a file in the simple format that dot
understands describing the graph, and use system() or backticks `` to call dot
to render that to a file.

Doesn't guarantee optimal layout or zero crossing edges; it uses heuristics to
get a generally reasonable layout.

There are commercial packages that do a better job but they're mostly
incredibly expensive. The Graph Layout Toolkit from Tom Sawyer Software looked
impressive, but the quote they called back with had quite a few zeroes ;-)

--
Andy Hassall (an**@andyh.co.uk) icq(5747695) (http://www.andyh.co.uk)
Space: disk usage analysis tool (http://www.andyhsoftware.co.uk/space)
Jul 17 '05 #3
On Sun, 09 Nov 2003 09:55:15 GMT, Ian.H wrote:
On Sun, 09 Nov 2003 10:49:52 +0100, TheDD wrote:
[...]

Not 100% sure if it covers your req's.. but have a google for 'JPGraph'.
This might be just what you're looking for =) HTH. Regards,


No, it's for histogram graphs and similar :(

Thx anyway
--
TheDD
Jul 17 '05 #4
On Sun, 09 Nov 2003 14:10:39 +0000, Andy Hassall wrote:
On Sun, 9 Nov 2003 10:49:52 +0100, TheDD <pa***@email.com> wrote:
[...]

The most popular free directed graph drawing library is the 'dot' program from
the Graphviz library: http://www.research.att.com/sw/tools/graphviz/ It does a decent enough job for small-ish graphs (<50 nodes), can output in
various formats, including HTML image maps so you can make the nodes clickable. Basically you'll have to output a file in the simple format that dot
understands describing the graph, and use system() or backticks `` to call dot
to render that to a file.
I thought about this, but i was hopping for something "better integrated".
I will look how this can be done (html map png image, html, or just
getting the coordinates and drawing myself).
Doesn't guarantee optimal layout or zero crossing edges; it uses heuristics to
get a generally reasonable layout. There are commercial packages that do a better job but they're mostly
incredibly expensive. The Graph Layout Toolkit from Tom Sawyer Software looked
impressive, but the quote they called back with had quite a few zeroes ;-)


Yeah, i can imagine ;)

Thx
--
TheDD http://www.epita.fr/~mancel_d
Ing2 Groupe B2
EPITA Promotion 2005
Jul 17 '05 #5
On Tue, 11 Nov 2003 10:49:38 +0100, TheDD <ma******@epita.fr> wrote:
On Sun, 09 Nov 2003 14:10:39 +0000, Andy Hassall wrote:
On Sun, 9 Nov 2003 10:49:52 +0100, TheDD <pa***@email.com> wrote:

[...]

The most popular free directed graph drawing library is the 'dot' program from
the Graphviz library:

http://www.research.att.com/sw/tools/graphviz/

It does a decent enough job for small-ish graphs (<50 nodes), can output in
various formats, including HTML image maps so you can make the nodes clickable.

Basically you'll have to output a file in the simple format that dot
understands describing the graph, and use system() or backticks `` to call dot
to render that to a file.


I thought about this, but i was hopping for something "better integrated".
I will look how this can be done (html map png image, html, or just
getting the coordinates and drawing myself).


Haven't tried it personally, but a quick search came up with the following PHP
class for wrapping up Graphviz:

http://pear.php.net/package/Image_GraphViz

Probably worth a look.

--
Andy Hassall (an**@andyh.co.uk) icq(5747695) (http://www.andyh.co.uk)
Space: disk usage analysis tool (http://www.andyhsoftware.co.uk/space)
Jul 17 '05 #6
Andy Hassall wrote:
[...]
Haven't tried it personally, but a quick search came up with the following PHP
class for wrapping up Graphviz:

http://pear.php.net/package/Image_GraphViz

Probably worth a look.


Yes, it will prevent me from writing some code, but not a hard part. It's still
not integrated since i need to save a dot file (through the lib), proccess
through graphviz, and then use the output :/

Thx anyway :) i will work on this again in one week.

NB: i must be a bad searcher ;)

--
TheDD

Jul 17 '05 #7

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

8
by: Stefan Burger | last post by:
Those of you who are in need for drawing vector lines might be interested in the following code. DrawLine( x1, y1, x2, y2, color ) draws a vector line from any Point x1,y1 to any Point x2,y2 in...
19
by: Atif | last post by:
Hello all, In my html page I want to add an image say of 800x600. Now I want that when ever I am given two coordinates on this image say (x1, y1)=(50, 100) and (x2, y2)=(200, 300), the java script...
0
by: SS KANAGAL | last post by:
Hello, I am drawing a bar graph in an aspx page using System.Drawing namespace . Now I want to provide drill down facility for the graph i.e. on click of a bar in the graph it should get me yet...
0
by: Ray Mitchell | last post by:
Hello, I need to write an application that displays multiple graphs on multiple tabbed sheets in a single window. The graphs are all simple X-Y line graphs like you'd see on an oscilloscope,...
2
by: ZUP_DUDE | last post by:
Hi All, I'm looking for a good paperback resource on the System.Drawing objects. I'm looking to create graphs and convert graphics from one type to another. Any Suggestions would be helpful. ...
5
by: Steve Marshall | last post by:
Hi all, I am converting an app which used a picturebox to draw graphs etc onto, then saved them to a file. I can certainly draw things onto a picturbox in VB.NET, but how do I save them to a...
1
by: Jonathan Daugherty | last post by:
Hello, I'm looking at a number of chart-drawing libraries and modules for Python and I'd like to know which one people tend to consider the best. I've tried gdchart2 but its interface seems...
6
by: Nico | last post by:
Hi, I'm looking for a package useful to draw graphs (like those listed at the page http://www.graphviz.org/, not general charts). Can you provide me with some indication please? Many thanks! Best,...
2
by: asdf | last post by:
I was told that it is difficult to draw plots and graphs in C++, right? In matlab, if I have data, it's very easy to generate the plots, and I want to know how C++ handles such output.
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
0
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.