Problem mit jpgraph Y-Achse

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

  • Problem mit jpgraph Y-Achse

    Hallo zs,

    wie kann man die Werte der y-Asche umdrehen ?

    Habe die Werte von 1 bis 8.... nun muss aber 8 auf der X-Achse liegen und die 1 oben stehen...
    Gruß
    Stebe
    Zuletzt geändert von Stebe; 15.03.2016, 19:10.

  • #2
    Ohne testbaren Code von Dir, wirst Du keine Hilfe bekommen.

    Gruß WW

    Kommentar


    • #3
      // A fake depth curve
      $ydata = array(1,3,1,5,8,2,3,4,5,8,2,3,4,5);

      Hier seht ihr meine vorgegebenen Schnittkoordinaten.

      nun möchte ich die Werte oben aus der DB lesen.

      Die Tabelle heist Druck und die Tabellenfelder in der Zeile 1 heissen alle
      druck1,druck2,druck3 usw. bis diese alle 16 Werte aus der Spalte ausgelesen werden.

      Ich habe schon einiges Versucht, bin aber jedesmal an einem Grafikanzeigeproblem X gescheitert.

      Gruß

      Kommentar


      • #4
        Falsches Datenbankdesign. Durchnummerierte Spalten sind Quatsch. Du brauchst nicht pro Wert eine Spalte sondern pro Wert eine Zeile.

        Kommentar


        • #5
          Wie meinst du das ?
          Kannst du ein wenig helfen ?

          $ab = mysql_query("SELECT druck1,druk2,druck3 FROM druck WHERE id='1'");
          $druck = mysql_fetch_array($ab);
          mysql_free_result($ab);

          Wie kann ich diese in die $ydata lesen ?

          Kommentar


          • #6
            Zitat von Stebe Beitrag anzeigen
            $ab = mysql_query("SELECT druck1,druk2,druck3 FROM druck WHERE id='1'");
            $druck = mysql_fetch_array($ab);
            mysql_free_result($ab);

            Wie kann ich diese in die $ydata lesen ?
            Naja im Prinzip so:
            PHP-Code:
            for ($i=1;$i<=14;$i++) {
              
            $ydata[] = $druck['druck'.$i];  

            Aber wie h311 schon angemerkt hat, ist das recht unschön. Stell dir mal vor du hättest mehrere tausend an Stelle der 14 Drücke. Dann wäre deine Datenbankanfrage ziemlich lang. Du hast ja jetzt schon nur die ersten drei Werte angegeben und nicht alle, vermutlich, weil du selbst gemerkt hast, dass das irgendwie lang wird.

            Deswegen ist es besser, die Datenbank umzustruktuieren. Du hast die folgende Tabelle:

            Code:
            id, druck1, druck2, druck3, druck4, druck5, druck6, druck7, druck8, druck9, druck10, druck11, druck12, druck13, druck14
            1, 1, 3, 1, 5, 8, 2, 3, 4, 5, 8, 2, 3, 4, 5
            Besser wäre die folgende Tabelle:

            Code:
            id, nr, druck
            1, 1, 1
            1, 2, 3
            1, 3, 1
            1, 4, 5
            1, 5, 8
            1, 6, 2
            1, 7, 3
            1, 8, 4
            1, 9, 5
            1, 10, 8
            1, 11, 2
            1, 12, 3
            1, 13, 4
            1, 14, 5
            Diese Tabelle kannst du jetzt so abfragen:

            PHP-Code:
            $ab mysql_query("SELECT nr,druck FROM druck WHERE id='1'");
            $az mysql_num_rows($ab);
            for (
            $i=1;$i<=$az;$i++) {
              
            $data mysql_fetch_assoc($ab);
              
            $ydata[$data['nr']-1] = $data['druck'];
            }
            mysql_free_result($ab); 
            An diesem Code ändert sich nichts, auch wenn du tausend Drücke hast.

            Leider hilft das bei deinem ursprünglichen Problem nicht weiter. Aber mir ist nicht klar, was da genau das Problem ist. Vielleicht kannst du einfach die drittletzte Zeile in obigem Code ersetzen durch:

            PHP-Code:
              $ydata[$data['nr']-1] = 8-$data['druck']; 
            Ich bin mir aber nicht ganz sicher ob das das ist, was du haben möchtest.

            Kommentar


            • #7
              Super

              Passt soweit, habe ich auch so umgesetzt.

              Noch eine weitere letzte Frage...

              Die Skalierung der Y ist von 1 bis 8 aufgelistet....
              Bei der X Achse habe ich nur jeden Zweiten Wert.... Wie bekomme ich hier die
              Werte 1,2,3,4 usw. bis 14 einzeln in der X Achse unten aufgelistet ?

              Und nochmal ein Dickes Danke an Euch .

              Kommentar

              Lädt...
              X