Jump to content

graph scaling and interaction help


kopander

Recommended Posts

Hi

I'm using php and gd library to plot integer points into a graph. I'm new to this and having some troubles. I'm trying to scale the graph according to how many records there are in the database table. There will be hundreds of records in the table. So far I only seem to be able to get it by just making the x-axis bigger and not scaling the entire graph. Any one have any ideas, directions I should look at? The code 'should' be attached below:

[code]
<?php
include "db.php"; //Database connection

$query=mysql_query("select KOL from small"); //Query database
$num = mysql_num_rows ($query); // Number of records

header ("Content-type: image/jpg");

$x_gap=$num-($num/3); // The gap between each point in y axis
$x_max=$x_gap*(2+$num); // Maximum width of the graph or horizontal axis
$y_max=250; // Maximum  hight of the graph or vertical axis

$im = @ImageCreate ($x_max, $y_max);
//Allocated Colours
$background_color = ImageColorAllocate ($im, 234, 234, 234);
$text_color = ImageColorAllocate ($im, 233, 14, 91);
$graph_color = ImageColorAllocate ($im,25,25,25);

//Set initial variables
$x1=0;
$y1=0;

    while($nt=mysql_fetch_array($query)){
        $x2=$x1+$x_gap; // Shifting in X axis
        $y2=($y_max/2)-$nt[0]; // Coordinate of Y axis
        //Draw the points
        imagefilledellipse($im, $x2, $y2, 4, 4, $graph_color);
        //Print values on graph
        ImageString($im,2,$x2,$y2,$nt[0],$graph_color);
        // Storing the value for next draw       
        $x1=$x2;
        $y1=$y2;}
       
ImageJPEG ($im);
?>
[/code]

Also, is there any way to make the plotted points interactive? Is that possible? How would I go about making the points pressable, and have the records data displayed for example? Any help would be greatly appreciated.


Thanks!
Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.