Forum

Einloggen | Registrieren | RSS  

Erfahrungen mit JPGRAPH (Netzwerktechnik)

verfasst von bastelix(R), 31.08.2018, 22:32 Uhr

So ich hab mal php installiert (hey ich hab seit drei Jahren nichts mehr mit php gemacht :clap: ) und etwas in der Doku gelesen.

» ich weiß nicht wo der Zusammenhang aus Anzahl der x-Werte und x-Beschriftung einstellbar ist
Mit $graph->xaxis->SetTextLabelInterval($interval); kannst du einstellen in welchen abständen die Beschriftung eingetragen wird. Damit hab ich dann was zusammengehackt. Geht vermutlich auch eleganter, aber wenn ich deine Anforderung richtig verstanden habe sollte der Hack reichen.
Interessant sind für dich Zeile 17 (hier wird das Label-Array gefüllt und zwar mit werten von 0 - 24), 27. (hier wird das Intervall gesetzt) und 29. (da wird dann das Label-Array gesetzt). Basis war ein Beispiel-Script aus dem Example-Ordner der lib.

Getestet mit PHP 7.0.7 und jpgraph-4.2.2 unter Linux

Besser lesbare Version gibt es unter https://pastebin.com/8yC6gNxq

<?php // content="text/plain; charset=utf-8"
require_once ('jpgraph/jpgraph.php');
require_once ('jpgraph/jpgraph_line.php');

function scaleNumber($val, $in_min, $in_max, $out_min, $out_max) {
return intval(($val - $in_min) * ($out_max - $out_min) / ($in_max - $in_min) + $out_min);
}

$l1datay = [];
$datax = [];
$maxData = 266;

for($i = 0; $i <= $maxData; ++$i) {
// demodaten erzeugen
$l1datay[] = $i % 35 == 0 ? rand(0, 200) : rand(10,100);
// label erzeugen und auf interval [0,25] runterrechnen.
$datax[] = scaleNumber($i, 0, $maxData, 0, 24);
}
$l1datay[$maxData] = 200; // letzten Datenpunkt als Ausreißer um zu sehen ob er noch im Bild ist

// Create the graph.
$graph = new Graph(800,400);
$graph->clearTheme();
$graph->SetScale("textlin";);

// Label nur alle /24 anzeigen
$graph->xaxis->SetTextLabelInterval(266/24);
// Label array setzen
$graph->xaxis->SetTickLabels($datax);

// Create the linear error plot
$l1plot=new LinePlot($l1datay);
$l1plot->SetColor("red";);
$l1plot->SetWeight(2);
$l1plot->SetLegend("Prediction";);

//Center the line plot in the center of the bars
$l1plot->SetBarCenter();

// Add the plots to t'he graph
$graph->Add($l1plot);

$graph->title->Set("Linie";);
$graph->xaxis->title->Set("X-title";);
$graph->yaxis->title->Set("Y-title";);

$graph->title->SetFont(FF_FONT1,FS_BOLD);
$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);

// Display the graph
$graph->Stroke();
// EOF

Hier noch ein Beispielbild



Gesamter Thread:

Erfahrungen mit JPGRAPH - hansi, 30.08.2018, 23:54 (Netzwerktechnik)
Erfahrungen mit JPGRAPH - bastelix(R), 31.08.2018, 00:24
Erfahrungen mit JPGRAPH - hansi, 31.08.2018, 11:09
Erfahrungen mit JPGRAPH - hansi, 31.08.2018, 20:18
Erfahrungen mit JPGRAPH - ollanner(R), 31.08.2018, 21:08
Erfahrungen mit JPGRAPH - hansi, 31.08.2018, 21:13
Erfahrungen mit JPGRAPH - ollanner(R), 31.08.2018, 21:53
Erfahrungen mit JPGRAPH - hansi, 31.08.2018, 22:20
Erfahrungen mit JPGRAPH - ollanner(R), 31.08.2018, 22:22
Erfahrungen mit JPGRAPH - bastelix(R), 31.08.2018, 22:39
Erfahrungen mit JPGRAPH - bastelix(R), 31.08.2018, 22:32
Erfahrungen mit JPGRAPH - hansi, 01.09.2018, 09:19
Erfahrungen mit JPGRAPH - bastelix(R), 01.09.2018, 13:03
Erfahrungen mit JPGRAPH - Hansi, 01.09.2018, 18:54
Erfahrungen mit JPGRAPH - hansi, 04.09.2018, 09:38
Erfahrungen mit JPGRAPH - hansi, 04.09.2018, 12:54