Forum
Erfahrungen mit JPGRAPH (Netzwerktechnik)
Hallo Bastelix,
erstmal möchte ich mich für deine Hilfe bedanken
Das sieht nun sehr gut aus
2 Fragen habe ich noch
ich hab nicht gefunden wo man die y-Achse fest einstellt
ich bräuchte nur den Bereich von 200 bis 260 (unabhängig vom Signal)
bisher waren das die Konstanten
$dat_ymin=200;
$dat_ymax=260;
ich habe in der x-Achse die Anzahl der Werte nochmal größer gemacht
der einzige Schönheitsfehler ist, dass die x -Skalenstriche nun zu einem schwarzen Balken werden
gibt es dafür auch noch eine Lösung?
» So ich hab mal php installiert (hey ich hab seit drei Jahren nichts mehr
» mit php gemacht ) 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: