[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();
?>
Bloggar om Hemautomation på HomeAutomateIt.com