Startseite
Installation
2D Tortendiagramme
3D Tortendiagramme
About this tutorial
 
 
Liniendiagramm

Ziel ist es dieses Liniendiagramm mit JPGraph zu programmieren:



Datei anlegen:

Lege eine Datei an "linegraph1.php" (Die Datei wo die Grafik generiert wird).
Man kann sie nun über diesen HTML Tag irgendwo in eine Seite einfügen.

<img src="linegraph1.php">

Grafik erstellen:
In der Datei "linegraph1.php" müssen wir nun die Grafik mit der JPGraph Library programmieren:

Zuerst müssen wir die JPGraph Library einbinen => jpgraph.php
Danach müssen wir die entsprechende Library einbinden => jpgraph_line.php

<?php
include ("jpgraph.php");
include (
"jpgraph_line.php");

// Hier kommt unser Code rein
?>

Danach muss zuerst mal die Grafik gebildet werden.
Eine neue Grafik mit den Massen (Breite x Höhe) 300 x 200 wobei JPGraph das Format automatisch wählt.

$graph = new Graph(300,200,"auto");    

Dann muss die Skala des Graphen festgelegt werden, wobei wir eine Text - Linear (X-Achse - Y- Achse) Skala wählen

$graph->SetScale("textlin");

Nun müssen wir die Werte der einen Linie in ein Array speichern, wobei wir die Werte frei wählen können (auch Kommazahlen).

$ydata = array(11,3,8,12,5,1,9,13,5,7);

Diese Werte müssen nun zu einem Graphen umgewandelt werden mit dem Befehl

$lineplot=new LinePlot($ydata);

Der generierte Graph muss nun noch in die Grafik eingetragen werden.

$graph->Add($lineplot);

Jetzt ist der Rohbau der Grafik fertig und wir können sie schon mal ausgeben mit diesem Befehl:

$graph->Stroke();

Das sieht dann mal folgendermassen aus:



Diese Grafik wollen wir nun noch etwas erweitern, Farben, Format usw....
Die Formatierungen können wir erst nach der generierung der Grafik einfügen also füge den folgenden Code nach dem Befehl
$graph->Add($lineplot); ein.


Erstmal geben wir der Grafik einen Namen (Titel): "Example 4":

$graph->title->Set("Example 4");

Die Schriftart des Titels könne wir auch verändern, mit dem Code (Diese Codes sind vorgegeben => Dokumentation):

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

Nun beschriften wir noch die beiden Achsen:

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


Und ihr Schriftformat können wir auch noch definieren:

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


Damit nun die Schriften nicht überdeckt werden von der Grafik, können wir einen Rand definieren, wobei die Zahlenordnung folgendermassen ist (Links, Rechts, Oben, Unten):

$graph->img->SetMargin(40,20,20,40);

Inzwischen sieht die Grafik folgendermassen aus:




Damit das ganze noch etwas Farbe bekomt müssen wir nun den Graphen und die Achsen noch etwas formatieren:

Die Farbe des Graphen können wir nun ändern, entweder kann ein Hex Code (#000000) oder einer der Farbcodes von JPGraph verwendet werden => Dokumentation:

$lineplot->SetColor("blue");

Und die Dicke der Graphenlinie auf 2 setzen:

$lineplot->SetWeight(2);

Der Y-Achse kann man mit folgendem Code eine Farbe zuordnen

$graph->yaxis->SetColor("red");

Und ihre Dicke kann man auch verändern:

$graph->yaxis->SetWeight(2);

Der gesamten Grafik kann man noch einen Schatten verleihen mit dem Befehl:

$graph->SetShadow();

Damit sieht die Grafik schon fast wie das Original aus:



Nur noch den 2. Graphen müssen wir hinzufügen:

Das ist ganz einfach, indem wir wie beim ersten Graphen wieder einen Array mit den Werten machen:

$ydata2 = array(1,19,15,7,22,14,5,9,21,13);

Den Graphen erzeugen:

$lineplot2=new LinePlot($ydata2);

Ihn in die Grafik einbinden

$graph->Add($lineplot2);

Und die Farbe sowie Dicke definieren:

$lineplot2->SetColor("orange");
$lineplot2->SetWeight(2);


Damit wäre unsere Grafik fertig:



Der Gesamte Code sieht dann folgendermassen aus:

<?php
include ("jpgraph.php");
include (
"jpgraph_line.php");

// Die Werte der 2 Linien in ein Array speichern
$ydata = array(11,3,8,12,5,1,9,13,5,7);
$ydata2 = array(1,19,15,7,22,14,5,9,21,13);

// Grafik generieren und Grafiktyp festlegen
$graph = new Graph(300,200,"auto");    
$graph->SetScale("textlin");

// Die Zwei Linien generieren
$lineplot=new LinePlot($ydata);

$lineplot2=new LinePlot($ydata2);

// Die Linien zu der Grafik hinzufügen
$graph->Add($lineplot);
$graph->Add($lineplot2);

// Grafik Formatieren
$graph->img->SetMargin(40,20,20,40);
$graph->title->Set("Example 4");
$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);

$lineplot->SetColor("blue");
$lineplot->SetWeight(2);

$lineplot2->SetColor("orange");
$lineplot2->SetWeight(2);

$graph->yaxis->SetColor("red");
$graph->yaxis->SetWeight(2);
$graph->SetShadow();

// Grafik anzeigen
$graph->Stroke();
?>
Das Liniendiagramm lässt sich noch um vieles Erweitern, einige Funktionien zeige ich hier auf => Komplexes Liniendiagramm
Damit wäre das Liniendiagramm fertig und wir können zu einem Balkendiagramm gehen => Balkendiagramm