jpgraph erstellen

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

  • jpgraph erstellen

    Hallo!

    Ich bin neu hier im Forum.
    Ich habe mal mit hilfe aus dem Inet mir ein Script zum erstellen eines Graphen gebastelt.
    Leider bekomme ich keine Ausgabe.
    Die Abfragen aus der Datenbank funktionieren und ich kann sie mir auch per echo vor dem erstellen das graphen Anzeigen lassen.
    Aber so wie das Script jetzt ist, erscheint nur eine weiße Seite.

    Hat jemand eventuell eine idee?

    PHP-Code:
    <?php

    include ('dbconnection.php');
    include (
    'usr/share/src/jpgraph3/jpgraph.php');
    include (
    'usr/share/src/jpgraph3/jpgraph_line.php');
    include (
    'usr/share/src/jpgraph3/jpgraph_mgraph.php');
    include (
    'usr/share/src/jpgraph3/jpgraph_date.php');


        
    $abfrage_tag "SELECT zeit, bad, wohnzimmer FROM $Table ORDER BY id DESC LIMIT 96";
        
    $ausgabe_tag mysql_query($abfrage_tag);

        
    $bad_durchschnitt "";
        
    $wohnzimmer_durchschnitt "";
        
        for(
    $i 0$Export ""$i mysql_num_rows($ausgabe_tag); $i++)
        {
        
    $Daten mysql_fetch_object($ausgabe_tag);

        
    $bad[] = $Daten->bad;
        
    $bad_durchschnitt $bad_durchschnitt $bad_durchschnitt;
        
    $wohnzimmer[] = $Daten->wohnzimmer;
        
    $wohnzimmer_durchschnitt $wohnzimmer_durchschnitt $wohnzimmer_durchschnitt;
        
    $zeit[] = $Daten->zeit;
        }

        
    $bad_durchschnitt round(($bad_durchschnitt $bad_durchschnitt 96), 2);
        
    $wohnzimmer_durchschnitt round(($wohnzimmer_durchschnitt $wohnzimmer_durchschnitt 96), 2);

        
    //echo $wohnzimmer[0];
        //echo $wohnzimmer[1];
        //echo $bad[0];
        //echo $bad[1];
        //echo $zeit[1];
        //echo $bad_durchschnitt;
        //echo $wohnzimmer_durchschnitt;

        
    function TimeCallback$aVal) {

            return 
    Date ('H:i',$aVal);
         }

        
    //Erzeugen des Graphen
        
    $graph = new Graph(700,200"auto");
        
    $graph->SetScale('datint',"auto","auto","auto","auto");
        
    $graph->SetY2Scale('int',"auto","auto");
        
    $lineplot_wohnzimmer = new LinePlot($wohnzimmer$zeit);
        
    $lineplot_bad = new LinePlot($bad$zeit);
        
        
    //Grafik Formatieren
        
    $graph->img->SetMargin(50,50,20,60);
        
    $graph->SetColor("#000000");
        
    $graph->SetMarginColor("#333333");
        
    $graph->SetShadow();
        
        
        
    //Title
        
    $graph->title->Set("Wohnzimmer/Bad");
        
    $graph->title->SetColor("#CCCCCC");
        
    $graph->title->SetFont(FF_FONT2,FS_BOLD);
        
    $graph->subtitle->Set("Aktuell:$wohnzimmer[0] C / $bad[0] C   Durchschnitt: $wohnzimmer_durchschnitt C / $bad_durchschnitt C");
        
    $graph->subtitle->SetColor("#CCCCCC");
        
        
    //Legende
        
    $graph->legend->Pos(0.50,0.95,"center","bottom");
        
    $graph->legend->SetLayout(LEGEND_HOR);
        
    $graph->legend->SetShadow(false);
        
    $lineplot_wohnzimmer->SetLegend("Temperatur Wohnzimmer (C) ");
        
    $lineplot_bad->SetLegend("Temperatur Bad (C) ");
        
        
    //X-Achse
        
    $graph->xaxis->SetColor("#CCCCCC");
        
    $graph->xaxis->title->Set("Zeit");
        
    $graph->xaxis->SetLabelFormatCallback('TimeCallback');
        
    $graph->xaxis->title->SetColor("#CCCCCC");
        
    $graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
        
        
    //Y-Achse
        
    $graph->yaxis->SetColor("#FF7777");
        
    $graph->y2axis->SetColor("#1111ee");
        
    $graph->yaxis->title->Set("Grad Celsius");
        
    $graph->y2axis->title->Set("Grad Celsius");
        
    $graph->yaxis->title->SetColor("#CCCCCC");
        
    $graph->y2axis->title->SetColor("#CCCCCC");
        
    $graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
        
    $graph->y2axis->title->SetFont(FF_FONT1,FS_BOLD);
        
        
    //Plot 1
        
    $lineplot_wohnzimmer->SetColor("#FF8888");
        
    $lineplot_wohnzimmer->SetFillColor("#EE0000@0.6");
        
    $lineplot_wohnzimmer->SetWeight(1);
        
        
    //Plot 2
        
    $lineplot_bad->SetColor("#8888ff");
        
    $lineplot_bad->SetFillColor("#2222DD@0.6");
        
    $lineplot_bad->SetWeight(1);
        
        
    //Die Plots der Grafik hinzufuegen
        
    $graph->Add($lineplot_wohnzimmer);
        
    $graph->AddY2($lineplot_bad);
        
        
    //Graphen zusammen bauen
        
    $mgraph = new MGraph(700,400,"auto");
        
    $mgraph->SetMargin(2,2,2,2);
        
    $mgraph->Add($graph,0,0);
        
    $graph->Stroke();
        
    ?>
    Schonmal Danke im vorraus....

    Gruss
    Tim
    Zuletzt geändert von Timy; 16.01.2012, 01:04.

  • #2
    Hallo und willkommen im Forum,

    was passiert, wenn du die finale stroke()-Methode auskommentierst und stattdessen eine echo-Anweisung hinschreibst?

    Hast du FAQ 2-11 schon gelesen?

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Auf was soll ich das echo schreiben?

      echo $graph ???

      Ich habe mir mal den link von Dir angeschaut.
      Ich denke zwar nicht das 30 Sekunden (soll Standard sein) nicht reichen.
      Aber ich kann es mal testen.

      edit: Ich habe in der php.ini den max_execution_time von 30 auf 60 hochgesetzt.

      Brachte aber leider kein Änderung.

      Dann habe ich mal versucht mit der Ausgabe eine Datei zu schreiben.

      [COLOR=#000000][COLOR=#0000CC]$graph[/COLOR][COLOR=#006600]->[/COLOR][COLOR=#0000CC]Stroke[/COLOR][COLOR=#006600]($graphfile);
      [/COLOR][/COLOR]
      Die Datei legt das Script erst garnicht an.
      Irgendwas muss es vorher schon stoppen.

      lg
      Tim
      Zuletzt geändert von Timy; 16.01.2012, 10:35.

      Kommentar


      • #4
        Dann bau echo-Anweisungen ein, um zu sehen, bis wohin das Script kommt. Einfach am Anfang $debug_position = 0; setzen und aller paar Codezeilen echo $debug_position++, "\n"; ausführen, dann siehst du, bis zu welcher Nummer er es schafft. Das meinte ich mit echo.

        Gruß,

        Amica
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          Hallo!

          Erstmal habe ich ein Fehler gefunden (bzw. mehrere).

          1. habe ich oben bei den Include den Pfad vertauscht. (peinlich).
          2. konnte er mit der zeit aus meiner sql nichts angfangen. Jetzt habe ich sie umgewandelt in Unix Zeit und nu geht es.

          Ein kleines Problem habe ich aber immer noch. Er zeigt mir zwar ein graph, aber die Bezeichnung der x-achse (TimeCallback) funktioniert nicht.
          Desweiteren funktioniert der Durchschnitt nicht.

          Ich werde weiter experimentieren.

          lg
          Tim

          Kommentar

          Lädt...
          X