Hallo RWN,
die „Plotline Zeile“ aus dem Tipp von weiter oben, habe ich entsprechend dem vorhandenen Syntax eingefügt.
Gruss NBA
<?
//==================================================================================
// Datei.......: chartdgen.php
// Beschreibung: MySQLData. Modul für Auswertegraphenerzeugung.
//
// Version.....: V2.0.3 - 001
//==================================================================================
require_once("./src/jpgraph.php");
require_once("./src/jpgraph_line.php");
require_once("./src/jpgraph_date.php");
require_once("./scr/jpgraph_plotline.php");
require_once("./mysql.php");
?>
<html>
<HEAD>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<link rel="stylesheet" type="text/css" href="./mystyle.css">
</head>
<body>
<center>
<TABLE width="80%"border="0">
<TR><TD><B>Stundenauswertung:</B></TD>
<TD align=right><a href="http:./chartdchoose.php">Neue Auswahl</a></TD>
<TD align=right><a href="http:./index.php">Home</a></TD>
</TR></TABLE><BR><BR>
<?
$fdesign=@$_REQUEST["fdesign"];
$falle=@$_REQUEST["falle"];
$fdate=$_REQUEST["fdate"];
$ftstart=$_REQUEST["ftstart"];
$ftstop=$_REQUEST["ftstop"];
if (date("I",strtotime($fdate))== 1) {
$toffset = -3600;
} else {
$toffset= 0;
}
// $fselect Array aus der Auswahl erstellen.
$IDS=explode(",",$_REQUEST["fpkeys"]);
$ID = 0;
while ($ID < (count($IDS)-1)) {
$tempvar = "fselect_".$IDS[$ID];
$fselect[$ID]="";
$fselect[$ID]=@$_REQUEST[$tempvar];
$ID=$ID+1;
}
// Auswahl der Zeiten checken und evtl. umdrehen.
if (strtotime($ftstart) > strtotime($ftstop)) { $dtemp=$ftstop; $ftstop=$ftstart; $ftstart=$dtemp; }
// Datenbank oeffnen
$link=dbopen();
// DataConf Variablen aus der Datenbank für Graph Erstellung holen.
$select = "SELECT * FROM dataconf order by description";
$query = mysql_query($select);
$f=0;
// DataConf Daten in Arrays Schreiben und SQL query bauen
$selectvar=""; $f=0;
while($row = mysql_fetch_array($query)) {
if (in_array($row['ipsvar'],$fselect) or $falle) {
$chartvars[$f]=$row['ipsvar'];
$einheit[$f]=$row['einheit'];
$description[$f]=$row['description'];
$selectvar=$selectvar.",`".$chartvars[$f]."`";
$f=$f+1;
}
}
If ($selectvar=="") { echo "Keine Variablen ausgewählt"; mysql_close($link); }
else {
// Daten für Graph Erstellung aus Datenbank holen
$select = "SELECT id,date ,time , polltime ".$selectvar." FROM data where date='".$fdate."' and (time between '".$ftstart."' and '".$ftstop."')" ;
$query = mysql_query($select);
$i=0;
while($row = mysql_fetch_array($query)) {
$f=0;
while ($f < count($chartvars)) {
$ydata[$f][$i]=$row[$chartvars[$f]];
$xdata[$f][$i] = (strtotime($row['date']." ".$row['time'])+$toffset);
$ynull[$f][$i] = 0;
$f=$f+1;
}
$i=$i+1;
}
mysql_close($link);
// Grafiken erstellen
$f=0;
while ($f < count($chartvars)){
// Create the new graph
// Groesse und Farbe des Graphen festlegen
$graph = new Graph(1200,700);
//
// --------------------------------------------------------------> Korrektur Bildgrösse 19.04.2009 Kurt
//
// $graph = new Graph(800,400);
$graph->SetMargin(80,35,40,100);
$graph->SetMarginColor('lightblue@0.4');
//$graph->SetAxisStyle(AXSTYLE_BOXIN);
// Daten an Graph uebergeben und min/max Wert abfragen incl. Design
$line = new LinePlot($ydata[$f],$xdata[$f]);
$line->SetColor("red");
$line->SetWeight(0);
list($xmin,$ymin) = $line->Min();
list($xmax,$ymax) = $line->Max();
// min/max manipulation für Y-Achse und Uebergabe an Graphen zur Skalierung
$graph->SetScale('datlin',($ymin-abs($ymin*0.45)),($ymax+abs($ymax*0.25)),$xmin,$xmax);
if ($ymin < 0) {
// Zusaetzliche Null Line erzeugen
$nullline = new LinePlot($ynull[$f],$xdata[$f]);
$nullline->SetFastStroke();
$nullline->SetWeight(1);
$graph->Add($nullline);
}
// Ueberschrift erstellen
$chartdesc=$description[$f]."
für den ".date("d.m.Y",$xmin);
$graph->title->SetFont(FF_ARIAL,FS_NORMAL,10);
$graph->title->Set($chartdesc);
// Gitternetz im Graphen
$graph->xgrid->Show(True);
$graph->xgrid->SetWeight(1);
$graph->xgrid->SetLineStyle('dashed');
$graph->ygrid->Show(True);
$graph->ygrid->SetLineStyle('solid');
$graph->ygrid->SetFill(true,'#EFEFEF@0.5','#FFFFFF@0');
//$graph->xgrid->SetFill(true,'#000000' ,'#FFFFFF');
// Max und Min Wert im Graphen darstellen.
$caption=new Text("Max: ".round($ymax,2)." Min: ".round($ymin,2),5,20);
$caption->SetFont(FF_ARIAL,FS_NORMAL,9);
$graph->AddText($caption);
//Ausrichtung Beschriftung der X-Achse bestimmen.
$graph->xaxis->SetFont(FF_ARIAL,FS_NORMAL,8);
$graph->xaxis->SetLabelAngle(45);
$graph->xaxis->SetLabelAlign('right','top');
$graph->xaxis->scale->SetTimeAlign(MINADJ_5);
$graph->xaxis->SetPos('min');
//Schriftart und Beschriftung der Y-Achse
$graph->yaxis->SetFont(FF_ARIAL,FS_NORMAL,8);
$graph->yaxis->title->SetFont(FF_ARIAL,FS_NORMAL,8);
$graph->yaxis->title->SetAngle(0);
$graph->yaxis->title->SetAlign('left','top');
$graph->yaxis->title->Set($einheit[$f]);
// Mehr Y-Achsen Bespriftung bei Tagesreport
if (count($xdata[$f]) < 60 ) $graph->xaxis->SetTextLabelInterval(2);
// Design Verbesserung der Graphen
if ($fdesign && $ymin >= 0){$line->SetFillGradient('red','yellow@0.2',70); }
else { $line->SetFillColor('yellow@0.7');}
$graph->Add($line);
$graph->AddLine(new PlotLine(VERTICAL,1,"black",0));
$graph->Stroke("./tmp/h".$chartvars[$f].".png");
?>
<img src="./tmp/h<?echo $chartvars[$f];?>.png"><BR><BR>
<?
flush();
$f=$f+1;
}
}
?>
</center>
</body>
</html>