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. 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 ....
    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.
      1. tres bien !
        maintenant comment representer:
        f(x)= sin(x)/tan(1-sqr(x)) * log(x-4) + 2-atan(x/4) ?
        par exemple

        thanks
        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
          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 ?
            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 ...
              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
                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
                  1. Ce ne sont pas de graves erreurs.
                    Tu peux modifier les alertes à afficher, en retirant les deprecated et les notices.
                    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 !
                      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
                        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 !