Le module XChart permet de construire des graphiques et de les afficher sous la forme d'une image dans un document. Ce module utilise le framework Java open source XChart : https://knowm.org/open-source/xchart/.
Il se base sur la version XChart 3.5.2.
Cette documentation n'a pas pour but de détailler l'ensemble des propriétés mises en œuvre par XChart pour la création d'un graphique mais uniquement comment décrire ces propriétés dans le cadre d'une utilisation via l'APE.
Il est donc nécessaire de se familiariser avec les notions introduites par XChart. Pour cela, se référer aux pages suivantes :
- https://github.com/knowm/XChart
- https://knowm.org/open-source/xchart/xchart-example-code/
- https://knowm.org/javadocs/xchart/index.html
Un ensemble d'exemples de templates APE sont fournis dans la base d'exemples apesamples. Ces exemples sont le portage des exemples de classes Java fournies par le framework XChart (https://github.com/knowm/XChart/tree/develop/xchart-demo).
Le module XChart supporte les sept principaux types de graphiques proposés par le framework XChart :
Type de graphique |
Classe de styles |
Classe de séries |
Type des données Java autorisées |
Style de rendu de série par défaut |
XYChart |
XYStyler |
XYSeries |
Number, Date |
Line |
CategoryChart |
CategoryStyler |
CategorySeries |
Number, Date, String |
Bar |
PieChart |
PieStyler |
PieSeries |
String |
Pie |
BubbleChart |
BubbleStyler |
BubbleSeries |
Number, Date |
Round |
DialChart |
DialStyler |
DialSeries |
double |
Round |
RadarChart |
RadarStyler |
RadarSeries |
double[] |
Round |
OHLCChart |
OHLCStyler |
OHLCSeries |
OHLC with Date |
Candle |
L'utilisation du module XChart dans un template APE se fait à l'aide d'une directive d'inclusion à insérer en début de template :
<#import "/lib_xchart.ftl" as xchartModule/>
Remarque : Le nom du namespace "xchartModule" est donné à titre d'exemple et peut être remplacé par un nom de votre choix (respectant la syntaxe des namespaces Apache Freemarker).
Ce module offre sept macros Freemarker, chacune d'elle permet de représenter un des cinq types de graphiques XChart :
- <@xchartModule.xyChart /> : Représente un graphique XYChart,
- <@xchartModule.categoryChart /> : Représente un graphique CategoryChart,
- <@xchartModule.pieChart /> : Représente un graphique PieChart,
- <@xchartModule.bubbleChart /> : Représente un graphique BubbleChart,
- <@xchartModule.dialChart /> : Représente un graphique DialChart,
- <@xchartModule.radarChart /> : Représente un graphique RadarChart,
- <@xchartModule.ohlcChart /> : Représente un graphique OHLCChart.
Remarque : Ces macros n'ont pas de contenu (pas de balises de fin). La description d'un graphique se fait en renseignant les paramètres de celles-ci.
Ces sept macros ont un ensemble de paramètres communs, à savoir :
- Paramètres obligatoires :
Type du paramètre | Nom du paramètre | Description |
Number |
width |
Largeur en pixels de l'image représentant le graphique. |
Number |
height |
Hauteur en pixels de l'image représentant le graphique. |
Séquence de Hash |
series |
Séquence d'objets Hash décrivant les données du graphique. Chaque série de données est représentée par un objet Hash. La nature d'une série (l'objet Hash) dépend du type de graphique à représenter. L'objet Hash contient un ensemble de propriétés qui permettent de représenter :
|
String / Hash |
drawformat |
Informations sur le format d'image. Si le type est "String", alors la valeur doit être l'une des suivantes :
Si le type est "Hash", alors il est possible pour les formats d'image PNG et JPEG de préciser la qualité à l'aide des clés suivantes :
|
- Paramètres optionnels :
Type du paramètre | Nom du paramètre | Description |
String |
title |
Titre du graphique. |
Hash |
style |
Objet Hash regroupant les propriétés de style d'un graphique. Ces propriétés sont regroupées en plusieurs ensembles pour représenter les classes Java du framework Chart Styler, AxesChartStyler, DialStyler, PieStyler, RadarStyler, BubbleStyler, CategoryStyler, OHLCStyler, XYStyler. |
Any | inner* | Chaque macro graphique s'appuie sur une macro foExternalGraphic ou foInstreamForeignObject pour afficher l'image du graphique dans le template APE. Ce choix interne se fait en fonction du format d'image (paramètre drawformat) : si le format est "svg", la macro choisie sera foInstreamForeignObject, sinon elle sera foExternalGraphic. Il est possible de spécifier des paramètres spécifiques à la macro foXXX générée en préfixant le nom des paramètres par la chaine "inner" et en mettant la première lettre du paramètre en majuscule. Exemple : Le paramètre contentWidth doit être transformé en innerContentWith.
|
Par exemple :
<#-- Just one serie for Dial Graph -->
<#assign dialSeries = [{"name": "Taux de remplissage", "value": 0.9381}] />
<@xchartModule.dialChart title="Charge de stockage" width=500 height=400 series=dialSeries drawformat="svg"/>