#FENIX UI CHART
Requirejs import :
define(['fx-chart/start'], function (ChartCreator) {
...
From a Fenix ressource (FX in this document) and some parameters provided to the initialization function, a pivotator-based creator will perform three mains operations : -denormalisation of the dataset(optional) -aggregation (optional) -renderisation of the result with an external library
Constructor :
this.chart = new ChartCreator(config);
with config is a json Object with these fields :
Parameter | Type | Default Value | Example | Description |
---|---|---|---|---|
type | string | - | type:"column" | type of chart we want to display currently available : "line","column", "column_stacked", "area", "pyramide", "area_stacked", "scatter","boxplot" |
x | json array | [] | x:["Country_EN","Indicator_EN"] | List the dimensions to put in x-axis of the graph |
series | json array | [] | series:["Year"] | List the dimensions that will be inerpreted as series in the graph |
aggregations | json array | [] | aggregations:["ElementCode_EN"] | FX columns we want to aggregate,they will not appears in the Grid |
y | json array | [] | y:["values"] | describe wich FX columns will be aggregates and displayed as Y-axis of the chart |
aggregationFn | json Object | {} | {value:"sum",Flag:"dif",Units:"dif"} | This object is needed to identify which aggregation function have to be applied for each field on the "values" part of the dataset. The functions identifiers "sum" and dif in this example refer to a function of aggregation implemented in the functions part of the application and can be easily extended if needed |
formatter | string | - | "localstring" or "value" | identifier of the formater function for the value field localstring result will be in this format : "1 250,12", value will return 1250,12 ; value is recommanded for charting |
hidden | json array | hidden:["DomainCode"] | this FX columns will not appear in the name of the series or of the X-axis | |
decimals | integer | decimals:2 | number of decimals in the values numbers | |
el | CSS3 Selector/JavaScript DOM element/jQuery DOM element | - | "#container" | Optional component container. if specified items's will be searched within it otherwise within the whole document. |
model | The ressource FENIX to display |
"data" : [ ["4","Algeria","5312","Area_harvested","366","Artichokes","2006","Ha","1713.00","","","003","1","007",""], ["4","Algeria","5312","Area_harvested","366","Artichokes","2007","Ha","1813.00","","","003","1","007",""]]};
var config={ series :["country_EN","element_EN","item_EN"], x :["year"], aggregations:["item_EN"], y:["value"], aggregationFn:{value:"sum"}, formatter:"localstring", model:FX, el:"#result", type:"line" }
this.chart = new ChartCreator(config);
will create a line chart in the container with the ID=result with country label, element label in row and the year in columns, group by the item: the aggregation function used will be the sum for the columns "value"
#update
the update function allow the user to modify the config file and refresh the chart : model,el have don't need to be provided.
example :
```javascript
this.chart.update({type:"area"})