Sort Both Axes in Scatter Chart
By Oleksii Demianyk
Widget Script:
var
xOrder =
'asc'
//also, this value can be desc
var
yOrder =
'asc'
widget.on(
'beforeviewloaded'
,
function
(scope, args) {
var
shouldBeExecuted = (order ===
'desc'
|| order ===
'asc'
)
if
(args.widget.type !==
'chart/scatter'
|| !shouldBeExecuted) {
return
}
var
daysOrder = args.options.xAxis.categories.sort();
if
(xOrder ===
'desc'
) {
daysOrder.reverse()
}
if
(daysOrder.length === args.options.xAxis.categories.length) {
args.options.xAxis.categories = daysOrder
for
(i=0; i<daysOrder.length; i++) {
for
(k=0; k<args.options.series.length; k++) {
for
(j=0; j<args.options.series[k].data.length; j++) {
if
(args.options.series[k].data[j].selectionData[0] === daysOrder[i]) {
args.options.series[k].data[j].x = i;
}
}
}
}
}
})
widget.on(
'beforequery'
,
function
(se, ev) {
ev.query.metadata.forEach(
function
(m) {
if
(m.wpanel && m.wpanel ===
'y-axis'
) {
m.jaql.sort = yOrder
}
})
})
Please sign in to leave a comment.
Comments
0 comments