Graphiques en php

Bonjour,

Je souhaite faire des graphiques pour des representations mathematiques
style sin(x) etc ... comment proceder ?

merci de tout coeur !

17 réponses

  1. Ce ne sont pas de graves erreurs.
    Tu peux modifier les alertes à afficher, en retirant les deprecated et les notices.
    1
    1. Tu prends un artichaut !
      Non je plaisante, c'est le nom de la librairie (des sortes d'extensions pour php) qui permet de faire simplement des très beaux graphiques :
      http://www.artichow.org/
      Et ya même le sinus !!!

      A bientôt !
      0
      1. Merci pour ta reponse rd_9 ,

        Je suis entre sur leur site mais quand je lance le forum je recois:
        No database selected: select * from phorum_settings
        sais -tu qu'est-ce qu'il faut faire ?
        je ne souhaite pas utiliser une librairie sans forum pour assistance...

        Merci
        0
        1. merci avion-f16

          maism voila l'appli de google me parait compliquee
          je ne vaeux pas de javascript et non plus de flash
          le seul restant est pchart : je l'ai charge mais quand j'execute un exemple sous
          wamp j'obtient :

          Deprecated: Function split() is deprecated in C:\wamp\www\Graphique\pChart.1.27d\pChart\pData.class on line 75

          Notice: Uninitialized string offset: 0 in C:\wamp\www\Graphique\pChart.1.27d\pChart\pData.class on line 127

          alors quoi faire ?
          je n'ai pas reussi a mettre en oeuvre Artichow! j'obtient du dgibrish a la place des graphiques

          Au secours !
          0
          1. je vais essaye , mais toi tu l'a deja essaye ?

            si oui peux tu m'expliquer en gros comment l'inserer dans un script HTML ?

            merci
            0
            1. Avion-f16 je suis desole mais je n'arrive pas a afficher un graphique meme avec
              '<img src="image.php" width="200" height="200" alt="">
              ou image.php contient le script :
              $graph = new Graph(300, 300);

              $plot = new MathPlot(-3, 3, 3, -3);
              $plot->setInterval(0.2);
              $plot->setPadding(NULL, NULL, NULL, 20);

              $function = new MathFunction('cos');
              $function->setColor(new DarkGreen);
              $function->mark->setType(Mark::SQUARE);
              $function->mark->setSize(3);
              $plot->add($function, "f(x) = cos(x)", Legend::MARK);

              $plot->legend->setPosition(0.9, 0.8);
              $plot->legend->setPadding(3, 3, 3, 3, 3);

              $graph->add($plot);
              $graph->draw();

              as-tu une atre idee ?

              merci
              0
              1. Où inclus-tu la bibliothèque ?
                Le code que tu me montres provient d'Artichow. Et 2 messages avant, tu essayais d'inclure pChart ...
                0
                1. Oui c'est vrai je me suis trompe mais cela ne change rien
                  en mettant un script de pchart je tombe sur des erreurs :
                  <?php
                  /*
                  Example5 : A limits graph
                  */

                  // Standard inclusions
                  include("pChart/pData.class");
                  include("pChart/pChart.class");

                  // Dataset definition
                  $DataSet = new pData;
                  $DataSet->AddPoint(array(1,4,-3,2,-3,3,2,1,0,7,4,-3,2,-3,3,5,1,0,7),"Serie1","");
                  $DataSet->AddPoint(array(2,5,7,5,1,5,6,4,8,4,0,2,5,6,4,5,6,7,6),"Serie2","");
                  $DataSet->AddAllSeries();
                  $DataSet->SetAbsciseLabelSerie();
                  $DataSet->SetSerieName("January","Serie1");
                  $DataSet->SetSerieName("February","Serie2");

                  // Initialise the graph
                  $Test = new pChart(700,230);
                  $Test->setFontProperties("Fonts/tahoma.ttf",8);
                  $Test->setGraphArea(50,30,585,200);
                  $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240);
                  $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230);
                  $Test->drawGraphArea(255,255,255,TRUE);
                  $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,0,2,TRUE);
                  $Test->drawGrid(4,TRUE,230,230,230,50);

                  // Draw the 0 line
                  $Test->setFontProperties("Fonts/tahoma.ttf",6);
                  $Test->drawTreshold(0,143,55,72,TRUE,TRUE);

                  // Draw the limit graph
                  $Test->drawLimitsGraph($DataSet->GetData(),$DataSet->GetDataDescription(),180,180,180);

                  // Finish the graph
                  $Test->setFontProperties("Fonts/tahoma.ttf",8);
                  $Test->drawLegend(600,30,$DataSet->GetDataDescription(),255,255,255);
                  $Test->setFontProperties("Fonts/tahoma.ttf",10);
                  $Test->drawTitle(50,22,"Example 5",50,50,50,585);
                  $Test->Render("example2.png");
                  ?>

                  Notice: Undefined index: Name in C:\wamp\www\pChart\pChart.class on line 594
                  /* Horizontal Axis */
                  $XPos = $this->GArea_X1 + $this->GAreaXOffset;
                  $ID = 1; $YMax = NULL;
                  foreach ( $Data as $Key => $Values )
                  {
                  if ( $ID % $SkipLabels == 0 )
                  {
                  $this->drawLine(floor($XPos),$this->GArea_Y2,floor($XPos),$this->GArea_Y2+5,$R,$G,$B);
                  $Value = $Data[$Key][$DataDescription["Position"]]; <-ligne594
                  if ( $DataDescription["Format"]["X"] == "number" )
                  $Value = $Value.$DataDescription["Unit"]["X"];
                  if ( $DataDescription["Format"]["X"] == "time" )
                  $Value = $this->ToTime($Value);
                  if ( $DataDescription["Format"]["X"] == "date" )
                  $Value = $this->ToDate($Value);
                  if ( $DataDescription["Format"]["X"] == "metric" )
                  $Value = $this->ToMetric($Value);
                  if ( $DataDescription["Format"]["X"] == "currency" )
                  $Value = $this->ToCurrency($Value);

                  $Position = imageftbbox($this->FontSize,$Angle,$this->FontName,$Value);
                  $TextWidth = abs($Position[2])+abs($Position[0]);
                  $TextHeight = abs($Position[1])+abs($Position[3]);

                  c'est quoi ce probleme ?
                  0
                  1. Bien mais entre temps je suis passe a jpgraph (tu connais ?).
                    je suis arrivé a afficher des exemples de graphiques seulement
                    dans une nouvelle fenetre en passant par une forme:

                    <form name="form1" method="post" action="bezierex1.php" >
                    <input value="Graph" align="left" type="submit">
                    </form>
                    ce que je souhaite c'est de l'afficher dans mon document HTML et pas dans une nouvelle fenetre.
                    est-il possible de transformer ce graphique contenu dans une fenetre en une image PNG qui s'afficherai dans mon document?

                    merci
                    0
                    1. tres bien !
                      maintenant comment representer:
                      f(x)= sin(x)/tan(1-sqr(x)) * log(x-4) + 2-atan(x/4) ?
                      par exemple

                      thanks
                      0
                      1. Les graphiques ne servent pas à représenter des fonctions, il faut utiliser des données.
                        Tu peux calculer y en fonction de plusieurs valeurs de x, et ensuite utiliser les couples pour créer le graphique.

                        https://jpgraph.net/download/manuals/chunkhtml/ch14.html
                        Ton ordinateur ne fait pas ce que tu veux ... mais ce que tu lui dis de faire.
                        Bonnes fêtes de fin d'année à tous.
                        0
                        1. Oui mais on peut automatiser l'entree des donnees dans les array[]
                          en tenant compte du lieu geometrique du graphique (x0,y0)=centre

                          X=x-x0
                          Y=y-y0
                          for(n=0;n<nmax;n++){
                          array[X1,X2,....Xn]
                          array[]Y1,Y2,....Yn]

                          }
                          f(x)=y;

                          function point($source,max,$x1,$y1,yx2,y2,$color){
                          for($i = 0;$i<=max;$i++){

                          imageline($source,$x1,$y1,$x2,$y2);
                          }

                          quelque chose dans ce genre .... mais j'ai pas le temps de reflechir ....
                          0