Ankündigung

Einklappen
Keine Ankündigung bisher.

JPGraph - Graph formatieren, Uhrzeit auf x-Achse

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • JPGraph - Graph formatieren, Uhrzeit auf x-Achse

    Hallo

    Ich habe mir ein Skript gebastelt mit dem ich aus einer Log-Datei verschiedene Temperatursensoren auslese und in einem Liniendiagramm darstelle.
    Die Log-Datei enthält Uhrzeit und Temperaturen des aktuellen Tages. Pro Minute werden ca ein bis 2 Zeilen hinzugefügt.
    Auf der y-Achse wird die Temperatur und auf der x-Achse die Uhrzeit aufgetragen.
    Die x-Achse startet bei 00:00 Uhr und endet mit der letzten Uhrzeit aus der Log-Datei. Siehe Bild 1

    Jetzt mein eigentliches Problem:
    Ich versuche die x-achse so zu formatieren das sie von 00:00 bis 23:59 Uhr geht und die einzelnen Linien nur bis zur aktuellen Uhrzeit gehen. Soll so aussehen wie Börsenkurse. Siehe Bild 2.

    Nur leider habe ich es noch nicht geschafft den Graphen so zu formatieren.
    Vielleicht könnt ihr mir ja dabei helfen.

    Hier mein (fast kompletter) Code:

    PHP-Code:
    <?php

    $timestamp 
    time();
    $datum date("Ymd"$timestamp);
    $datei "d:\TextData_$datum.log";
    $array file($datei);

    require_once (
    "jpgraph.php");
    require_once (
    "jpgraph_line.php");
    require_once (
    'jpgraph_date.php');


    // Die Werte der Linien in ein Array speichern
    $ydata $sensor1;
    $ydata2 $sensor2;
    $ydata3 $sensor3;
    $ydata4 $sensor4;
    $ydata5 $sensor5;
    $ydata6 $sensor6;
    $y2data=$pumpe1;
    $y2data2=$pumpe2;

    // Werte für X-Achse
    $xdata $zeit;

    // Grafik generieren und Grafiktyp festlegen
    $graph = new Graph(950,550,"auto");
    $graph->SetScale("datlin","0","100","auto","auto");
    $graph->SetBox();                                      //Rand oben und rechts
    $graph->SetY2Scale("lin","0","100");                   // 2. Y-Achse
    $graph->xaxis->scale->SetDateFormat('H:i');            //Zeitformat der x-Achse


    // Die Linien generieren
    $lineplot=new LinePlot($ydata);
    $lineplot2=new LinePlot($ydata2);
    $lineplot3=new LinePlot($ydata3);
    $lineplot4=new LinePlot($ydata4);
    $lineplot5=new LinePlot($ydata5);
    $lineplot6=new LinePlot($ydata6);
    $lineplot7=new LinePlot($y2data);
    $lineplot8=new LinePlot($y2data2);

    // Die Linien zu der Grafik hinzufügen
    $graph->Add($lineplot);
    $graph->Add($lineplot2);
    $graph->Add($lineplot3);
    $graph->Add($lineplot4);
    $graph->Add($lineplot5);
    $graph->Add($lineplot6);
    $graph->AddY2($lineplot7);
    $graph->AddY2($lineplot8);


    // Grafik Formatieren
    $graph->img->SetMargin(45,40,20,80);
    $graph->title->Set(date("d.m.Y - H:i:s"$timestamp));
    $graph->xaxis->title->Set("Uhrzeit");
    $graph->xaxis->SetTitlemargin(30);                        //Abstand (in Pixel) Achsentitel zu Achse

    $graph->yaxis->title->Set("Temperatur [°C]");

    // Setup margin color
    $graph->SetMarginColor('lightblue@0.5');



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


    $Linienstaerke 3;

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

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

    $lineplot3->SetColor("black");
    $lineplot3->SetWeight($Linienstaerke);

    $lineplot4->SetColor("green");
    $lineplot4->SetWeight($Linienstaerke);

    $lineplot5->SetColor("red");
    $lineplot5->SetWeight($Linienstaerke);

    $lineplot6->SetColor("brown");
    $lineplot6->SetWeight($Linienstaerke);

    $lineplot7->SetColor("blue");
    $lineplot7->SetWeight(1);

    $lineplot8->SetColor("green");
    $lineplot8->SetWeight(1);

    $graph->yaxis->SetColor("black");
    $graph->yaxis->SetWeight(1);
    $graph->ygrid->Show(truetrue);                         //Gitterlinien (Hauptlinien, Nebenlinien)
    $graph->ygrid->setcolor("black@0.8""black@0.9");
    $graph->ygrid->SetWeight(1,1);
    $graph->yaxis->scale->ticks->Set(10,5);                  //Werte an Y-Achse
    $graph->y2axis->scale->ticks->Set(10,5);                  //Werte an Y2-Achse



    //X-Achse
    $graph->xaxis->SetTickLabels($zeit);
    $graph->xaxis->SetTextLabelInterval(3);                     //Text auf jeder x großen Markierung
    $graph->xaxis->SetLabelAngle(90);
    $graph -> xaxis -> scale -> SetDateFormat('H:i');

    //Legende
    $graph->legend->SetPos(0.5,0.999,'center','bottom');
    $graph->legend->SetColumns(1);
    $graph->legend->SetLayout(LEGEND_HOR);
    $graph->legend->SetLineWeight(5);                       //Dicke der Linien in der Legende
    $graph->legend->SetMarkAbsSize(15);                     //Länge der Linien in der Legende
    $graph->legend->SetShadow(false);                       // Schatten der Legende

    // Legende generieren
    $lineplot6 -> SetLegend ("Speicher 2 oben");
    $lineplot5 -> SetLegend("Speicher 1 oben");
    $lineplot4 -> SetLegend("Ofen");
    $lineplot2 -> SetLegend("Speicher 1 unten");
    $lineplot3 -> SetLegend("Speicher 2 unten");
    $lineplot -> SetLegend("Kollektor");







    // Grafik anzeigen
    $graph->Stroke();
    ?>

    MfG
    Björn

  • #2
    Hallo, da wendest du dich am besten an die Autoren von JPGraph.

    Und bitte beachten: http://www.php.de/php-einsteiger/543...produkten.html

    Kommentar


    • #3
      Hallo Björn,

      kannst du statt konkreten Werten für Uhrzeiten in der Zukunft 0 oder NULL übergeben? (geraten) Wie es Asipak schon gesagt hat, zu fertigen Skripten/Bibliotheken geben wir ungern Support und sind zumeist auch nicht der beste Ansprechpartner. Wenn du nicht gerade Glück hast und einen JPGraph-Anwender hier findest, bist du sicherlich im Forum des Anbieters besser beraten.

      Kommentar


      • #4
        Hi Chriz

        das funktioniert leider nicht. Habe ich auch schon ausprobiert.


        Das dieses Forum nicht speziell für jgraph ist, ist mir bekannt. Versuche es nur auf gut Glück hier, weil es mehrer Threads gibt die sich mit jpgraph beschäftigen.

        Kommentar


        • #5
          Hallo

          Das Problem mit der Formatierung habe ich fast jetzt gelöst.
          Für alle die ein ähnliches Problem habe poste ich auch mal die Lösung.

          Der Trick war, die Uhrzeit nicht im normalen Format an Jpgraph zu übergeben sonder als Unixtimestamp.
          Dafür habe ich die Stunden, Minuten und Sekunden einzeln aus der Log-Datei ausgelesen und in Sekunden umgerechnet. D.h. 1:23:05 Uhr entspricht nach der Umrechnung 4985 Sekunden. Von diesem Wert muss man noch 3600 Sekunden abziehen, da 00:00:00 Uhr in Unixzeit nicht 0, sondern -3600 Sekunden entspricht. Macht man das nicht, passt die Formatierung der x-Achse wieder nicht.
          Damit Jpgraph genau einen Tag anzeigt muss man jetzt noch den minimalen und maximalen Wert der x-Achse festlegen. Für min: -3600, für max: 82800. Dies entspricht genau einem tag in Sekunden.
          Jpgraph rechnet die Sekunden wieder zurück in das normale Format und zeigt die auch an.


          Der Code sieht nicht schön aussieht und kann garantiert noch verbessert werden, aber er funtioniert.

          Der komplette Code sieht dann so aus:

          PHP-Code:
          <?php


          $tag 
          $_POST["tag"]."";
          $monat $_POST["monat"]."";
          $jahr $_POST["jahr"]."";

          $datum "$jahr$monat$tag";

          $datum2 "$tag.$monat.$jahr";

          $datei "d:\TextData_$datum.log";

          $array file($datei);

          array_splice($array01);                             //1. Zeile löschen (Spaltenüberschriften)

          $array preg_replace("/,/",".",$array);               //ersetzt , durch .
          $array preg_replace("/\t/","xxxxxxxxxxxx",$array);

          foreach(
          $array as $val)                                // Gibt Sensor1 aus
          {
            
          $s1 substr($val2712)."";
            
          $s1 str_replace('x','',$s1);                       //löscht die eingefügten x
            
          $sensor1[] = $s1;
          }

          foreach(
          $array as $val)                                // Gibt Sensor2 aus
          {
            
          $s2 substr($val4412)."";
            
          $s2 str_replace('x','',$s2);
            
          $sensor2[] = $s2;
          }

          foreach(
          $array as $val)                                // Gibt Sensor3 aus
          {
            
          $s3 substr($val6012)."";
            
          $s3 str_replace('x','',$s3);
            
          $sensor3[] = $s3;
          }


          foreach(
          $array as $val)                                // Gibt Sensor4 aus
          {
            
          $s4 substr($val7512)."";
            
          $s4 str_replace('x','',$s4);
            
          $sensor4[] = $s4;
          }

          foreach(
          $array as $val)                                // Gibt Sensor5 aus
          {
            
          $s5 substr($val9112)."";
            
          $s5 str_replace('x','',$s5);
            
          $sensor5[] = $s5;
          }

          foreach(
          $array as $val)                                // Gibt Sensor6 aus
          {
            
          $s6 substr($val10712)."";
            
          $s6 str_replace('x','',$s6);
            
          $sensor6[] = $s6;
          }

          foreach(
          $array as $val)                                //Gibt Uhrzeit aus
          {
            
          $time substr ($val11,5)."";
            
          $zeit[] = $time;
          }



          foreach(
          $array as $val)                                //Gibt Uhrzeit in Sekunden (Unixtime) aus
          {
            
          $time1 substr ($val11,2);
            
          $ausg1 $time1*60*60;

            
          $time2 substr ($val14,2);
            
          $ausg2 $time2*60;

            
          $time3 substr ($val17,2);
            
          $ausg3 $time3;

            
          $t4 = ($ausg1 $ausg2 $ausg3 -3600 );                // Zeit in Sekunden
            
          $time4[] = $t4;
           }






          foreach(
          $array as $val)                                // Gibt Drehzahl Pumpe1 aus
          {
            
          $p1 substr($val18512)."";
            
          $p1 str_replace('x','',$p1);
            
          $pumpe1[] = $p1/10;
          }

          foreach(
          $array as $val)                                // Gibt Drehzahl Pumpe2 aus
          {
            
          $p2 substr($val21212)."";
            
          $p2 str_replace('x','',$p2);
            
          $pumpe2[] = $p2/10;
          }

          foreach(
          $array as $val)                                // Gibt Ventil aus
          {
            
          $v6 substr($val22612)."";
            
          $v6 str_replace('x','',$v6);
            
          $ventil[] = $v6*(-2);
          }




          require_once (
          "jpgraph.php");
          require_once (
          "jpgraph_line.php");
          require_once (
          'jpgraph_date.php');

          // Die Werte der Linien in ein Array speichern
          $ydata $sensor1;
          $ydata2 $sensor2;
          $ydata3 $sensor3;
          $ydata4 $sensor4;
          $ydata5 $sensor5;
          $ydata6 $sensor6;
          $y2data=$pumpe1;
          $y2data2=$pumpe2;
          $y2data3=$ventil;

          // Werte für X-Achse
          $xdata $time4;

          // Grafik generieren und Grafiktyp festlegen
          $graph = new Graph(1200,650);
          $graph->SetScale("datlin","-10","100","-3600","82800");
          $graph->SetBox();                                       //Rand oben und rechts
          $graph->SetY2Scale("lin","-10","100");                  // 2. Y-Achse
          $graph->yaxis->SetPos("-3600");                         // y-achse auf -3600 setzen
          $graph->xaxis->scale->SetDateFormat('H:i');             //Zeitformat der x-Achse
          $graph->xaxis->SetPos('min');                           // x-Achse immer ganz unten

          $sline  = new PlotLine (horizontal0"black",1.7);     // Linie bei 0°C
          $graph->AddLine$sline);

          // Die Linien generieren
          $lineplot=new LinePlot($ydata$xdata);
          $lineplot2=new LinePlot($ydata2$xdata);
          $lineplot3=new LinePlot($ydata3$xdata);
          $lineplot4=new LinePlot($ydata4$xdata);
          $lineplot5=new LinePlot($ydata5$xdata);
          $lineplot6=new LinePlot($ydata6$xdata);
          $lineplot7=new LinePlot($y2data$xdata);
          $lineplot8=new LinePlot($y2data2$xdata);
          $lineplot9=new Lineplot($y2data3$xdata);

          // Die Linien zu der Grafik hinzufügen
          $graph->Add($lineplot);
          $graph->Add($lineplot2);
          $graph->Add($lineplot3);
          $graph->Add($lineplot4);
          $graph->Add($lineplot5);
          $graph->Add($lineplot6);
          $graph->AddY2($lineplot8);
          $graph->AddY2($lineplot7);
          $graph->AddY2($lineplot9);

          // Grafik Formatieren
          $graph->img->SetMargin(40,30,20,80);
          $graph->title->Set("$datum2");
          $graph->xaxis->title->Set("Uhrzeit");
          $graph->xaxis->SetTitlemargin(30);                        //Abstand (in Pixel) Achsentitel zu Achse
          $graph->yaxis->title->Set("Temperatur [°C]");

          // Setup margin color
          $graph->SetMarginColor('lightblue@0.5');
          $graph->title->SetFont(FF_FONT1,FS_BOLD);
          $graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
          $graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);

          $Linienstaerke 2;

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

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

          $lineplot3->SetColor("yellow2");
          $lineplot3->SetWeight($Linienstaerke);

          $lineplot4->SetColor("forestgreen");
          $lineplot4->SetWeight($Linienstaerke);

          $lineplot5->SetColor("red");
          $lineplot5->SetWeight($Linienstaerke);

          $lineplot6->SetColor("brown");
          $lineplot6->SetWeight($Linienstaerke);

          $lineplot7->SetColor("blue");
          $lineplot7->SetWeight(1);
          $lineplot7->SetFillColor("blue@0.8");

          $lineplot8->SetColor("forestgreen");
          $lineplot8->SetWeight(1);
          $lineplot8->SetFillColor("forestgreen@0.7");

          $lineplot9->SetColor("black");
          $lineplot9->SetWeight(1);
          $lineplot9->SetFillColor("black@0.2");

          $graph->yaxis->SetColor("black");
          $graph->yaxis->SetWeight(1);
          $graph->ygrid->Show(truetrue);                         //Gitterlinien (Hauptlinien, Nebenlinien)
          $graph->ygrid->setcolor("black@0.8""black@0.9");
          $graph->ygrid->SetWeight(1,1);
          $graph->yaxis->scale->ticks->Set(10,5);                  //Werte an Y-Achse
          $graph->y2axis->scale->ticks->Set(10,5);                  //Werte an Y2-Achse

          //X-Achse
          $graph->xaxis->SetTickLabels($zeit);
          $graph->xgrid->SetLineStyle("dotted");
          $graph->xaxis->SetLabelAngle(90);

          //Legende
          $graph->legend->SetPos(0.5,0.999,'center','bottom');
          $graph->legend->SetColumns(1);
          $graph->legend->SetLayout(LEGEND_HOR);
          $graph->legend->SetLineWeight(5);                       //Dicke der Linien in der Legende
          $graph->legend->SetMarkAbsSize(15);                     //Länge der Linien in der Legende
          $graph->legend->SetShadow(false);                       // Schatten der Legende

          // Gitter
          $graph->xgrid->Show();                                   // Gitterlinien x-achse

          // Legende generieren
          $lineplot6 -> SetLegend ("Speicher 2 oben");
          $lineplot5 -> SetLegend("Speicher 1 oben");
          $lineplot4 -> SetLegend("Ofen");
          $lineplot2 -> SetLegend("Speicher 1 unten");
          $lineplot3 -> SetLegend("Speicher 2 unten");
          $lineplot -> SetLegend("Kollektor");

          // Grafik anzeigen
          $graph->Stroke();
          ?>
          Und so sieht der erzeugt Graph dann aus:

          Klicken


          Die Log-Datei:

          DOWNLOAD




          Ein Problem gibt es dennoch. Aus irgendeinem Grund steht anstelle von 2:00 Uhr auf der x-Achse 11:23 Uhr. Warum das so ist kann ich nicht sagen, konnte es bisher auch nicht ändern. Der Graph wird trotzdem korrekt dargestellt. Es lediglich nur nicht schön anzushen.

          Dieses Script habe ich geschrieben um Log-Datein von Resol Solarreglern auszulesen. Sollte aber auch bei anderen Reglern funktionieren die Baugleich mit denen von Resol sind.

          MfG
          Björn

          Kommentar


          • #6
            Ich hab den Code jetzt mal überarbeitet. Besonders den ersten Teil indem die Log-Datei ausgelesen wird. Er ist jetzt wesentlich kürzer und übersichtlicher. Alle Werte für den Graph werden mit einer einzigen foreach Funktion ausgelesen und die Spalten des Arrays können direkt angegeben werden.
            Auch das Problem mit der falschen Uhrzeit auf der X-Achse tritt nicht mehr auf.


            MfG
            Björn


            PHP-Code:
            <?php

            $timestamp 
            time();
            $datum date("Ymd"$timestamp);
            $datei "d:\TextData_$datum.log";
            $array file($datei);

            array_splice($array01);                             //1. Zeile löschen (Spaltenüberschriften)

            $array preg_replace("/,/",".",$array);               //ersetzt , durch .
            $array preg_replace("/\t/","|",$array);              //ersetzt TAB durch |






            foreach($array as $val)
            {
              
            $spalte explode("|"$val);                    // Gibt Sensoren aus

              
            $sensor1[] = $spalte[1];
              
            $sensor2[] = $spalte[2];
              
            $sensor3[] = $spalte[3];
              
            $sensor4[] = $spalte[4];
              
            $sensor5[] = $spalte[5];
              
            $sensor6[] = $spalte[6];
              
            $pumpe1[] = $spalte[11]/10;
              
            $pumpe2[] = $spalte[13]/10;
              
            $ventil[] = $spalte[14]*(-2);
              
            //echo "$spalte[2] <br>";


              
            $time1 substr ($val11,2);                     //Gibt Uhrzeit in Sekunden (Unixtime) aus
              
            $ausg1 $time1*60*60;

              
            $time2 substr ($val14,2);
              
            $ausg2 $time2*60;

              
            $time3 substr ($val17,2);
              
            $ausg3 $time3;

              
            $t4 = ($ausg1 $ausg2 $ausg3 -3600 );                // Zeit in Sekunden
              
            $time4[] = $t4;
              
            //echo $t4."<br>";
            }





            require_once (
            "jpgraph.php");
            require_once (
            "jpgraph_line.php");
            require_once (
            'jpgraph_date.php');

            // Die Werte der Linien in ein Array speichern
            $ydata $sensor1;
            $ydata2 $sensor2;
            $ydata3 $sensor3;
            $ydata4 $sensor4;
            $ydata5 $sensor5;
            $ydata6 $sensor6;
            $y2data=$pumpe1;
            $y2data2=$pumpe2;
            $y2data3=$ventil;

            // Werte für X-Achse
            $xdata $time4;

            // Grafik generieren und Grafiktyp festlegen
            $graph = new Graph(1200,650);
            $graph->SetScale("datlin","-10","100","-3600","82800");
            $graph->SetBox();                                       //Rand oben und rechts
            $graph->SetY2Scale("lin","-10","100");                  // 2. Y-Achse
            $graph->yaxis->SetPos("-3600");                         // y-achse auf -3600 setzen
            $graph->xaxis->scale->SetDateFormat('H:i');             //Zeitformat der x-Achse
            $graph->xaxis->SetPos('min');                           // x-Achse immer ganz unten

            $sline  = new PlotLine (horizontal0"black",1.7);     // Linie bei 0°C
            $graph->AddLine$sline);

            // Die Linien generieren
            $lineplot=new LinePlot($ydata$xdata);
            $lineplot2=new LinePlot($ydata2$xdata);
            $lineplot3=new LinePlot($ydata3$xdata);
            $lineplot4=new LinePlot($ydata4$xdata);
            $lineplot5=new LinePlot($ydata5$xdata);
            $lineplot6=new LinePlot($ydata6$xdata);
            $lineplot7=new LinePlot($y2data$xdata);
            $lineplot8=new LinePlot($y2data2$xdata);
            $lineplot9=new Lineplot($y2data3$xdata);

            // Die Linien zu der Grafik hinzufügen
            $graph->Add($lineplot);
            $graph->Add($lineplot2);
            $graph->Add($lineplot3);
            $graph->Add($lineplot4);
            $graph->Add($lineplot5);
            $graph->Add($lineplot6);
            $graph->AddY2($lineplot8);
            $graph->AddY2($lineplot7);
            $graph->AddY2($lineplot9);

            // Grafik Formatieren
            $graph->img->SetMargin(40,30,20,80);
            $graph->title->Set(date("d.m.Y - H:i:s"$timestamp));
            $graph->xaxis->title->Set("Uhrzeit");
            $graph->xaxis->SetTitlemargin(30);                        //Abstand (in Pixel) Achsentitel zu Achse
            $graph->yaxis->title->Set("Temperatur [°C]");

            // Setup margin color
            $graph->SetMarginColor('lightblue@0.5');
            $graph->title->SetFont(FF_FONT1,FS_BOLD);
            $graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
            $graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);

            $Linienstaerke 2;

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

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

            $lineplot3->SetColor("yellow2");
            $lineplot3->SetWeight($Linienstaerke);

            $lineplot4->SetColor("forestgreen");
            $lineplot4->SetWeight($Linienstaerke);

            $lineplot5->SetColor("red");
            $lineplot5->SetWeight($Linienstaerke);

            $lineplot6->SetColor("brown");
            $lineplot6->SetWeight($Linienstaerke);

            $lineplot7->SetColor("blue");
            $lineplot7->SetWeight(1);
            $lineplot7->SetFillColor("blue@0.8");

            $lineplot8->SetColor("forestgreen");
            $lineplot8->SetWeight(1);
            $lineplot8->SetFillColor("forestgreen@0.7");

            $lineplot9->SetColor("black");
            $lineplot9->SetWeight(1);
            $lineplot9->SetFillColor("black@0.2");

            $graph->yaxis->SetColor("black");
            $graph->yaxis->SetWeight(1);
            $graph->ygrid->Show(truetrue);                         //Gitterlinien (Hauptlinien, Nebenlinien)
            $graph->ygrid->setcolor("black@0.8""black@0.9");
            $graph->ygrid->SetWeight(1,1);
            $graph->yaxis->scale->ticks->Set(10,5);                  //Werte an Y-Achse
            $graph->y2axis->scale->ticks->Set(10,5);                  //Werte an Y2-Achse

            //X-Achse

            $graph->xgrid->SetLineStyle("dotted");
            $graph->xaxis->SetLabelAngle(90);


            //Legende
            $graph->legend->SetPos(0.5,0.999,'center','bottom');
            $graph->legend->SetColumns(1);
            $graph->legend->SetLayout(LEGEND_HOR);
            $graph->legend->SetLineWeight(5);                       //Dicke der Linien in der Legende
            $graph->legend->SetMarkAbsSize(15);                     //Länge der Linien in der Legende
            $graph->legend->SetShadow(false);                       // Schatten der Legende

            // Gitter
            $graph->xgrid->Show();                                   // Gitterlinien x-achse

            // Legende generieren
            $lineplot6 -> SetLegend ("Speicher 2 oben");
            $lineplot5 -> SetLegend("Speicher 1 oben");
            $lineplot4 -> SetLegend("Ofen");
            $lineplot2 -> SetLegend("Speicher 1 unten");
            $lineplot3 -> SetLegend("Speicher 2 unten");
            $lineplot -> SetLegend("Kollektor");

            // Grafik anzeigen
            $graph->Stroke();
            ?>

            Kommentar


            • #7
              Hier nochmal ein Stück einer Log-Datei, weil der Link oben nicht mehr funktioniert.



              Code:
              Datum	Temperatur Sensor 1 [ °C]	Temperatur Sensor 2 [ °C]	Temperatur Sensor 3 [ °C]	Temperatur Sensor 4 [ °C]	Temperatur Sensor 5 [ °C]	Temperatur Sensor 6 [ °C]	Temperatur Sensor 7 [ °C]	Temperatur Sensor 8 [ °C]	Volumenstrom [ m³/h]	Einstrahlung [ W/qm]	Drehzahl 1 [%]	Drehzahl 2 [%]	Drehzahl 3 [%]	Relais 4	Relais 5	Relais 6	Systemzeit	Schema	Option: Kollektorkühlung	Option: Kollektorminimalbegrenzung	Option: Frostschutzfunktion	Option: Röhrenkollektorfunktion	Option: Rückkühlung	Option: Wärmemengenzählung	Betriebsstunden 1 [ h]	Betriebsstunden 2 [ h]	Betriebsstunden 3 [ h]	Betriebsstunden 4 [ h]	Betriebsstunden 5 [ h]	Betriebsstunden 6 [ h]	Wärmemenge [ Wh]	
              20.03.2011 15:52:36	67,7	41,9	26,0	71,6	61,1	37,2	888,8	888,8	0,00	0	50	0	100	0	0	0	15:54	13	0	0	0	0	0	0	2475	0	1498	718	8277	0	0	
              20.03.2011 15:52:47	67,9	41,9	26,0	71,7	61,1	37,2	888,8	888,8	0,00	0	50	0	80	0	0	0	15:54	13	0	0	0	0	0	0	2475	0	1498	718	8277	0	0	
              20.03.2011 15:52:58	68,1	41,9	26,0	71,1	61,1	37,2	888,8	888,8	0,00	0	50	0	80	0	0	0	15:54	13	0	0	0	0	0	0	2475	0	1498	718	8277	0	0	
              20.03.2011 15:53:10	68,3	41,9	26,0	69,9	61,1	37,2	888,8	888,8	0,00	0	50	0	80	0	0	0	15:55	13	0	0	0	0	0	0	2475	0	1498	718	8277	0	0	
              20.03.2011 15:53:21	68,2	42,0	26,0	68,3	61,1	37,2	888,8	888,8	0,00	0	50	0	80	0	0	0	15:55	13	0	0	0	0	0	0	2475	0	1498	718	8277	0	0	
              20.03.2011 15:53:32	68,0	42,0	26,0	67,0	61,1	37,2	888,8	888,8	0,00	0	50	0	80	0	0	0	15:55	13	0	0	0	0	0	0	2475	0	1498	718	8277	0	0	
              20.03.2011 15:53:43	68,1	42,0	26,0	65,9	61,1	37,2	888,8	888,8	0,00	0	50	0	0	0	0	0	15:55	13	0	0	0	0	0	0	2475	0	1498	718	8277	0	0	
              20.03.2011 15:53:55	68,6	42,0	26,0	65,3	61,1	37,2	888,8	888,8	0,00	0	50	0	0	0	0	0	15:55	13	0	0	0	0	0	0	2475	0	1498	718	8277	0	0	
              20.03.2011 15:54:06	68,8	42,0	26,0	65,2	61,1	37,2	888,8	888,8	0,00	0	50	0	0	0	0	0	15:56	13	0	0	0	0	0	0	2475	0	1498	718	8277	0	0	
              20.03.2011 15:54:17	68,9	42,0	26,0	65,3	61,1	37,2	888,8	888,8	0,00	0	50	0	0	0	0	0	15:56	13	0	0	0	0	0	0	2475	0	1498	718	8277	0	0	
              20.03.2011 15:54:29	69,0	42,0	26,0	65,6	61,1	37,2	888,8	888,8	0,00	0	50	0	0	0	0	0	15:56	13	0	0	0	0	0	0	2475	0	1498	718	8277	0	0	
              20.03.2011 15:54:40	69,1	42,1	26,0	66,0	61,1	37,2	888,8	888,8	0,00	0	50	0	0	0	0	0	15:56	13	0	0	0	0	0	0	2475	0	1498	718	8277	0	0	
              20.03.2011 15:54:51	69,0	42,1	26,0	66,6	61,1	37,2	888,8	888,8	0,00	0	50	0	0	0	0	0	15:56	13	0	0	0	0	0	0	2475	0	1498	718	8277	0	0	
              20.03.2011 15:55:02	69,2	42,1	26,0	67,2	61,1	37,2	888,8	888,8	0,00	0	50	0	0	0	0	0	15:57	13	0	0	0	0	0	0	2475	0	1498	718	8277	0	0	
              20.03.2011 15:55:14	69,0	42,2	26,1	68,1	61,1	37,2	888,8	888,8	0,00	0	50	0	0	0	0	0	15:57	13	0	0	0	0	0	0	2475	0	1498	718	8277	0	0

              Kommentar

              Lädt...
              X