## Class Plot

- Component

- Plot

Cette classe est la base des courbes et histogrammes sur Artichow.

Les classes suivantes dérivent de Plot :

- LinePlot
- BarPlot
- ScatterPlot

- Retourner voir la liste de toutes les classes

## Méthodes et propriétés

- const string LEFT := left
- const string RIGHT := right
- const string TOP := top
- const string BOTTOM := bottom
- const string BOTH := both

- public array $datay
- public array $datax
- public Grid $grid
- public Axis $xAxis
- public Axis $yAxis
- protected bool $xAxisZero := TRUE

- public __construct()
- public reduce(number $number)
- public setXAxis(string $axis)
- public setYAxis(string $axis)
- public setXAxisZero(bool $zero)
- public setYAxisZero(bool $zero)
- public setYMin(float $value)
- public setYMax(float $value)
- public setXMin(float $value)
- public setXMax(float $value)

## Documentation

- const string LEFT := left
  Dessine l'axe des abscisses sur la gauche du graph.
  Remonter
- const string RIGHT := right
  Dessine l'axe des abscisses sur la droite du graph.
  Remonter
- const string TOP := top
  Dessine l'axe des ordonnées sur le haut du graph.
  Remonter
- const string BOTTOM := bottom
  Dessine l'axe des ordonnées sur le bas du graph.
  Remonter
- const string BOTH := both
  Dessine l'axe des abscisses (ou des ordonnées) sur la gauche et la droite (ou le haut et la bas) du graph.
  Remonter
- public array $datay
  Les valeurs de l'axe des Y.
  Remonter
- public array $datax
  Les valeurs de l'axe des X.
  Remonter
- public Grid $grid
  Représente la grille de fond du composant.
  Remonter
- public Axis $xAxis
  L'axe des abscisses
  Remonter
- public Axis $yAxis
  L'axe des ordonnées
  Remonter
- protected bool $xAxisZero := TRUE
  Est-ce le ou les axes des abscisses doivent être centrés sur zéro ?
  Remonter
- public __construct()
  Construit le composant.
  Remonter
- public reduce(number $number)
  Réduit le nombre de valeurs à afficher sur le composant à $number.
  Cette fonctionnalité est utile dans le cas où vous souhaitez afficher plus de 400 ou 500 valeurs sur un graphique. En effet, au delà d'un certain nombre de valeurs, toutes ne seront pas affichées et le temps de création du graphique sera très élevé. La solution est de réduire le nombre de valeurs sur votre graphique, ce que permet cette fonction. Le processus de réduction se fait à travers un système de moyennes, afin de garder une courbe identique à celle que vous auriez eu en affichant toutes les valeurs. Le nombre $number que vous spécifiez en paramètre est un nombre maximal. Pas plus de $number valeurs seront affichées sur le graphique. En revanche, dans certains cas, il est possible qu'un nombre inférieur de valeurs soient affichées. Voici un exemple d'utilisation de cette fonctionnalité :

      <?php

      require_once "LinePlot.class.php";

      $graph = new Graph(400, 400);

      $datay = array();
      $datax = array();

      // On créé un tableau avec 3000 valeurs
      for($i = 1; $i <= 3000; $i++) {
      	$datay[] = log($i);
      	$datax[] = $i;
      }

      $plot = new LinePlot($datay);
      $plot->xAxis->setLabelText($datax);
      $plot->xAxis->label->setAngle(90);

      // On réduit le nombre de valeurs à afficher sur le graphique à 30,
      // soit 100 fois moins
      $plot->reduce(30);

      // On affiche le graphique
      // Les valeurs de l'axe des X ont été automatiquement mises à jour
      $graph->add($plot);
      $graph->draw();

      // Finalement, la courbe représentative de log(x) apparaît très correctement

      ?>

  Remonter
- public setXAxis(string $axis)
  Change l'axe de abscisses qui sera affiché sur l'image. Cela peut être Plot::TOP, Plot::BOTTOM ou Plot::BOTH.
  Remonter
- public setYAxis(string $axis)
  Change l'axe de ordonnées qui sera affiché sur l'image. Cela peut être Plot::LEFT, Plot::RIGHT ou Plot::BOTH.
  Remonter
- public setXAxisZero(bool $zero)
  Précise si le ou les axes des abscisses doivent être centrés sur le zéro de l'axe des ordonnées. Comme il peut y avoir plus axes des ordonnées, l'axe de gauche est choisi en premier pour sélectionner la valeur du zéro. S'il n'existe pas, alors on utilise l'axe de droite.
  Remonter
- public setYAxisZero(bool $zero)
  Précise si le ou les axes des ordonnées doivent être centrés sur le zéro de l'axe des abscisses. Comme il peut y avoir plus axes des abscisses, l'axe du bas est choisi en premier pour sélectionner la valeur du zéro. S'il n'existe pas, alors on utilise l'axe du haut.
  Remonter
- public setYMin(float $value)
  Force la valeur minimale de l'axe des ordonnées à $value. L'appel à cette méthode désactive la gestion automatique de l'axe des ordonnées.
  Voir aussi :
  - Plot::setYMax()
  - Axis::auto()
  Remonter
- public setYMax(float $value)
  Force la valeur maximale de l'axe des ordonnées à $value. L'appel à cette méthode désactive la gestion automatique de l'axe des ordonnées.
  Voir aussi :
  - Plot::setYMin()
  - Axis::auto()
  Remonter
- public setXMin(float $value)
  Force la valeur minimale de l'axe des abscisses à $value.
  Voir aussi :
  - Plot::setXMax()
  Remonter
- public setXMax(float $value)
  Force la valeur maximale de l'axe des abscisses à $value.
  Voir aussi :
  - Plot::setXMin()
  Remonter