[PHP]Hjälp med graf (GraPHPite)

Permalänk
Medlem

[PHP]Hjälp med graf (GraPHPite)

Jag försöker få till en graf med hjäp av GraPHPite, men jag kan inte få till det som jag vill.
Detta är vad jag har lyckats åstakomma på ett antal timmar slit:

Jag vill ha stapeldigram som visar in och och samt totalt i varje stapel som jag har fått till. Det som dock inte funkar är är att tiden inte visas på x-axeln utan bara 2,4,6 osv.
Ett annat problem är att bilden skickas som med en image header så jag kan inte ha något annat på samma sida och FF och IE kan inte visa bilden utan att först ladda hem den så att man kan läsa den från hårddisken.
Hur gör jag för att visa den på sidan?

Det kanske finns något bättre sätt att skriva ut en graf som denna? Ge mig gärna tips i så fall!

Detta är koden:

$res = mysql_query("SELECT * FROM stats WHERE peers > 0 ORDER BY time ASC LIMIT 48"); while ($arr = mysql_fetch_assoc($res)) { $tid = date("H:i", $arr[time]); $tot["$tid"] = $arr[in] + $arr[ut]; $in["$tid"] = $arr[in]; $ut["$tid"] = $arr[ut]; } include("Image/Graph.php"); // create the graph $Graph =& new Image_Graph(800, 400); // add a TrueType font $Arial =& $Graph->addFont(new Image_Graph_Font_TTF("arial.ttf")); // set the font size to 15 pixels $Arial->setSize(11); // add a title using the created font // create the plotarea $Graph->add( new Image_Graph_Layout_Vertical( new Image_Graph_Title("Stats", $Arial), $PlotArea = new Image_Graph_Plotarea(), //$Legend = new Image_Graph_Legend(), 5 ) ); $GREEN =& $Graph->newColor(IMAGE_GRAPH_GREEN, 100); $RED =& $Graph->newColor(IMAGE_GRAPH_RED, 200); $WHITE =& $Graph->newColor(IMAGE_GRAPH_WHITE, 25); $Grid =& $PlotArea->addGridY(new Image_Graph_Grid_Bars()); $Grid->setFillStyle(new Image_Graph_Fill_Gradient(IMAGE_GRAPH_GRAD_VERTICAL, IMAGE_GRAPH_WHITE, IMAGE_GRAPH_LIGHTGRAY, 200)); $Plot =& $PlotArea->addPlot( new Image_Graph_Plot_Bar( new Image_Graph_Dataset_Sequential($tot) ) ); $Plot->setFillStyle($WHITE); $Marker =& new Image_Graph_Marker_Value(IMAGE_GRAPH_VALUE_Y); $Plot->setMarker($Marker); $Marker->setFillStyle($WHITE); $Marker->setBorderColor(IMAGE_GRAPH_BLACK); $Plot =& $PlotArea->addPlot( new Image_Graph_Plot_Bar( new Image_Graph_Dataset_Sequential($in) ) ); $Plot->setFillStyle($GREEN); $Marker =& new Image_Graph_Marker_Value(IMAGE_GRAPH_VALUE_Y); $Plot->setMarker($Marker); $Marker->setFillStyle($WHITE); $Marker->setBorderColor(IMAGE_GRAPH_BLACK); $Plot =& $PlotArea->addPlot( new Image_Graph_Plot_Bar( new Image_Graph_Dataset_Sequential($ut) ) ); $Plot->setFillStyle($RED); $Marker =& new Image_Graph_Marker_Value(IMAGE_GRAPH_VALUE_Y); $Plot->setMarker($Marker); $Marker->setFillStyle($WHITE); $Marker->setBorderColor(IMAGE_GRAPH_BLACK); $AxisX = $PlotArea->getAxis(IMAGE_GRAPH_AXIS_X); $AxisY = $PlotArea->getAxis(IMAGE_GRAPH_AXIS_Y); $AxisY->showArrow(); // output the Graph $Graph->done(); ?>

Visa signatur

Bloggar om Hemautomation på HomeAutomateIt.com

Permalänk

Re: [PHP]Hjälp med graf (GraPHPite)

Citat:

Ursprungligen inskrivet av pekz0r
Ett annat problem är att bilden skickas som med en image header så jag kan inte ha något annat på samma sida och FF och IE kan inte visa bilden utan att först ladda hem den så att man kan läsa den från hårddisken.
Hur gör jag för att visa den på sidan?

Orkar inte sätta mig in i koden, är seg i huvudet idag men kan hjälpa med det andra.
Om du vill visa bilden så kör sidan i en image-tag från en annan sida.
Exempel: <img src="bild.php" alt="min graf" />

Visa signatur

"Knowledge amplification. What he learns, we all learn. What he knows, we all benefit from."

Permalänk
Medlem

Ah det gick ju xD
Jag försökte med att includera filen med php i en img-tagg

Finns det någon som är bra på GraPHPite eller kan rekomendera något annat för att rita bra grafer?

Visa signatur

Bloggar om Hemautomation på HomeAutomateIt.com

Permalänk
Citat:

Ursprungligen inskrivet av pekz0r
Ah det gick ju xD
Jag försökte med att includera filen med php i en img-tagg

Finns det någon som är bra på GraPHPite eller kan rekomendera något annat för att rita bra grafer?

http://www.qualityunit.com/postgraph/

eller

http://code.google.com/apis/chart/

Visa signatur

"Knowledge amplification. What he learns, we all learn. What he knows, we all benefit from."

Permalänk
Medlem

Postgraph testade jag för och det verkade väldigt begränsat. Det står väldigt lite i dokumentationen om hur man gör.

Googles chart API verkar ju nte kunna skiva ut värdena i diagrammet på något vettigt sätt och jag skulle föredra ett API som man kan ladda ner och köra på servern

Visa signatur

Bloggar om Hemautomation på HomeAutomateIt.com