Graphiques en php

cgershon Messages postés 288 Statut Membre -  
 docRoms -
Bonjour,

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

merci de tout coeur !

17 réponses

  1. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Ce ne sont pas de graves erreurs.
    Tu peux modifier les alertes à afficher, en retirant les deprecated et les notices.
    1
  2. Utilisateur anonyme
     
    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
  3. cgershon Messages postés 288 Statut Membre 4
     
    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
  4. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Salut.

    Il suffit de chercher un peu sur Google.
    http://pchart.sourceforge.net/
    http://code.google.com/intl/fr-FR/apis/chart/ (via URL)
    https://www.amcharts.com/ (Flash)
    http://www.splashnology.com/blog/javascripts/290.html (Javascript)
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. cgershon Messages postés 288 Statut Membre 4
     
    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
  7. cgershon Messages postés 288 Statut Membre 4
     
    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
  8. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Il faut indiquer dans l'attribut src de la balise <img /> l'URL du script PHP qui génère le graphique.

    La documentation :
    http://pchart.sourceforge.net/documentation.php
    0
  9. cgershon Messages postés 288 Statut Membre 4
     
    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
  10. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    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
  11. cgershon Messages postés 288 Statut Membre 4
     
    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
  12. cgershon Messages postés 288 Statut Membre 4
     
    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
  13. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Le script PHP génère une image, et seulement une image, pas une page HTML.
    Donc tu peux indiquer le script PHP dans l'attribut src de la balise <img />

    https://jpgraph.net/download/manuals/
    0
  14. cgershon Messages postés 288 Statut Membre 4
     
    tres bien !
    maintenant comment representer:
    f(x)= sin(x)/tan(1-sqr(x)) * log(x-4) + 2-atan(x/4) ?
    par exemple

    thanks
    0
  15. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    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
  16. cgershon Messages postés 288 Statut Membre 4
     
    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