Changeset 32539 in spip-zone


Ignore:
Timestamp:
Oct 31, 2009, 4:34:55 PM (10 years ago)
Author:
olivier.gautier@…
Message:

Nouveau type de graph "accbarre" : correspond à http://hem.bredband.net/aditus/chunkhtml/ch15s02.html#fig.example23
On peut accumuler jusqu'à 3 séries de données.
Peut-être faudra-t-il prévoir un modèle avec 4 ou 5 séries de données pour proposer un maximum de possibilités ? A suivre...

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/jpgraph/jpgraph_fonctions.php

    r32534 r32539  
    119119        case "courbe":      require_once ('src/jpgraph_line.php'); break;
    120120        case "barre":       require_once ('src/jpgraph_bar.php');  break;
     121        case "accbarre":       require_once ('src/jpgraph_bar.php');  break;
    121122        case "camembert":   require_once ('src/jpgraph_pie.php');  break;
    122123        default:            $type_graphe = "courbe";
     
    228229                        if ($legendetrois[1]) $graph->yaxis->title->Set($legendetrois[1]);
    229230                            break;
    230                            
    231          case "camembert":  $graph = new PieGraph($largeur,$hauteur);   
     231       
     232         case "accbarre":       $graph = new Graph($largeur,$hauteur);
     233                            $graph->SetScale('textlin');
     234                            // Create the linear plot
     235                            $plot1 = new BarPlot($donnee);
     236                            // style & couleur
     237                                        if ($couleur['contour']) $plot1->SetColor($couleur['contour']);
     238                                        // Le degrade pour les barres est tres specifique (un peu comme le modele de marqueur) et doit etre traite dans une fonction supplementaire, sera fait ulterieurement
     239                                        // if ($couleur['degrade']) $plot->SetFillGradient($couleur['fond'],$couleur['degrade']);
     240                                       
     241                                        //petit patch en attendant d'uniformiser la doc : pour l'instant la doc indique que couleur=blue doit remplir en bleu les barres, alors que l'uniformisation des
     242                                        // couleurs indiquera plutot qu'il s'agit d'une couleur de contour et non une couleur de fond
     243                                        if (($couleur['contour']) AND (!$couleur['fond'])) $plot1->SetFillColor($couleur['contour']);
     244                                        //Devra etre probablement supprime ulterieurement, ou alors on garde cela, dans le cas d'oubli de la couleur de fond
     245                                       
     246                                        if ($couleur['fond']) $plot1->SetFillColor($couleur['fond']);                             
     247                           $group_plot[0]= $plot1;
     248                           
     249                           if ($donneedeux) {
     250                                $plot2 = new BarPlot($donneedeux);
     251                                if ($couleurdeux['contour']) $plot2->SetColor($couleurdeux['contour']);
     252                                if (($couleurdeux['contour']) AND (!$couleurdeux['fond'])) $plot2->SetFillColor($couleurdeux['contour']);
     253                                if ($couleurdeux['fond']) $plot2->SetFillColor($couleurdeux['fond']);
     254                                $group_plot[1]= $plot2;
     255                           }
     256
     257                           if ($donneetrois) {
     258                                $plot3 = new BarPlot($donneetrois);
     259                                if ($couleurtrois['contour']) $plot3->SetColor($couleurtrois['contour']);
     260                                if (($couleurtrois['contour']) AND (!$couleurtrois['fond'])) $plot3->SetFillColor($couleurtrois['contour']);
     261                                if ($couleurtrois['fond']) $plot3->SetFillColor($couleurtrois['fond']);
     262                                $group_plot[2]= $plot3;
     263                           }
     264
     265                            $plot = new AccBarPlot($group_plot);
     266                            // titre & legende
     267                            $graph->title->Set(utf8_decode($titre));
     268                            if (count($legende)>1)
     269                                $graph->xaxis->SetTickLabels($legende);
     270                        if ($legendetrois[0]) $graph->xaxis->title->Set($legendetrois[0]);
     271                        if ($legendetrois[1]) $graph->yaxis->title->Set($legendetrois[1]);
     272                            break;
     273
     274         case "camembert":  $graph = new PieGraph($largeur,$hauteur);   
    232275                            // Create the linear plot
    233276                            $plot = new PiePlot($donnee);
Note: See TracChangeset for help on using the changeset viewer.