Re: Graphing - bar charts
| From: | matthew perry | Date: | Tue, 06 Apr 2004 18:21:01 +0000 |
| Subject: | Re: Graphing - bar charts | ||
| References: | 1 2 | Groups: | php.db |
| Request: | Send a blank email to php-db+get-33772@lists.php.net to get a copy of this message | ||
Bar graphs are very easy to use with PHP. It's just a table columns of varying height.
I wrote this a long time ago. To be honest it isn't very good code and I think I got the ideas from someone else.
Regardless it should give you an idea.
You basically pass in an array of dollar amounts and it outputs a bar graph.
You can also manually adjust the scale of the graph by varying the values $minval and $maxval.
The function "bar" makes a single bar of the graph.
Use it at your own risk though. It is pretty poor PHP but it did the trick for me!
------------------------------------------------------------------------
//graph looks best when values are between 50 and 250
function bargraph ($bararray, $xminval, $xmaxval){
function bar($height,$val, $minval, $maxval){
$n_bars=count($bararray);
$newmargin = $maxval - $minval;
$newdifference = $height - $minval;
$newchange = $newdifference / $newmargin;
$newheight = 200 * $newchange + 25;
echo ("<td valign=bottom>" .
"<table bgcolor=#aa2222 height=" . $newheight .
" cellpadding=0 cellspacing=0>");
echo("<tr><td align=center valign=bottom>");
echo ("<font color=#00000 size=-1 >");
echo ("$");
printf("%.2f", $val);
echo ("</font>");
echo ("</td></tr></table></td>");
}
$n_bars=count($bararray);
$border=0;
echo("<table bgcolor=#a0a0a0 height=200 width=" .
$n_bars*$width . " border=" . $border . " >");
if (!$xminval) $minval= min ($bararray);
else $minval = $xminval;
if (!$xmaxval)$maxval= max ($bararray);
else $maxval = $xmaxval;
for ($x = 0; $x<count($bararray); $x++){
bar($bararray[$x], $bararray[$x], $minval, $maxval);
}
echo("</table>");
}
--------------------------------------------------------------------------
- Matt
John W. Holmes wrote:
From: "Craig Hoffman" <choffman@katomic.com>I am looking for an open source and simple PHP script that will graph (bar) a few MySQL fields. Does anyone have any recommendations?The easiest way is to just have an image that you dynamically vary with width of <img src="dot.jpg" height="10" width="$width"> Or take a look at JPGraph, which offers a lot of features. ---John Holmes...