Restrictions et incompatibilités
La richesse du composant offre de grandes possibilités et une grande variété de graphe, mais elle induit aussi des incompatibilités dont il faudra se prémunir.
Exemples :
Si le type du graphe est Pie (camembert), aucun axe n'est nécessaire. Dans ce cas les axes déclarés sont simplement ignorés
Si on affecte des points OHLC à une série Pie, on n'obtiendra rien de concluant
La règle générale est la suivante : dès que l'on sort du cadre normal de l'utilisation d'un item du graphe, le résultat n'est plus ni prévisible, ni garanti.
Ainsi, et sans être exhaustif, on peut dégager certaines règles de bon fonctionnement :
PieChart
Il faut utiliser une série de type PieSeries (ou DoughnutSeries) et une seule,
Il faut créer les points via XmeChartCreatePiePointHmp (pour garantir des points compatibles Techniquement des points créés via XmeChartCreatePolarPointHmp ou XmeChartCreateCartesianPointHmp seront compatibles avec une PieSeries et un PieChart, mais cela reste déconseillé et inutile),
Il ne faut aucun axe
Les options de zoom, de réticule, ou de trackball sont inopérantes (donc inutiles)
Graphes Cartésiens
Les graphes cartésiens sont ceux pour lesquels les possibilités sont les plus étendues (en termes de données représentées et de type de représentations)
Le type de l'axe des abscisses pilote une grande partie des entités à manipuler. On retrouvera les principales règles dans le tableau suivant :
Axe des abscisses | Types de séries autorisés | Fonction de création des points |
CHART_OPTVAL_AXIS_TYPE_CATEGORICAL | Tous types de séries sauf | XmeChartCreateCartesianCategoricalPointHmp |
CHART_OPTVAL_AXIS_TYPE_DATETIME_CATEGORICAL | Tous types de séries sauf | XmeChartCreateDateTimePointHmp |
CHART_OPTVAL_AXIS_TYPE_LINEAR | CHART_OPTVAL_SERIES_TYPE_POINTS | XmeChartCreateCartesianPointHmp |
D'autre part il faut éviter les axes des ordonnées non numériques.
Les fonctions de zoom trackball et réticule sont utilisables en graphe cartésiens
PolarChart
Soit on fait un graphe polaire et donc :
Il faut des Séries de type 'PolarSeries CHART_OPTVAL_SERIES_TYPE_POLAR_POINTS, CHART_OPTVAL_SERIES_TYPE_POLAR_LINE, CHART_OPTVAL_SERIES_TYPE_POLAR_AREA (pas des RadarSeries ou des séries cartésiennes)
Les points doivent être créés via XmeChartCreatePolarPointHmp.
Il faut un axe radial numérique Obligatoirement décrit explicitement car l'axe par défaut du PolarChart est un axe radial catégoriel conduisant à un RadarChart.
Les options de zoom, trackball et réticule sont inopérantes
Soit on veut un RadarChart et il faut :
Des séries de types radar CHART_OPTVAL_SERIES_TYPE_RADAR_POINTS, CHART_OPTVAL_SERIES_TYPE_RADAR_LINE, CHART_OPTVAL_SERIES_TYPE_RADAR_AREA
Créer les points via XmeChartCreateRadarPointHmp
Un axe radial catégoriel (qui peut être celui par défaut)