我有這個起始代碼,我想弄清楚如何從最高到最低對這些資料進行排序。代碼可以對值進行正確排序,但 yAxis 中的標簽是錯誤的。
我自己嘗試過,但這段代碼很先進,我很容易理解。
這是片段
//after the data is sorted
let meta = chart.getDatasetMeta(0);
let newMeta = [];
let labels = chart.data.labels;
let newLabels = [];
meta.data.forEach((a, i) => {
newMeta[dataIndexes[i]] = a;
newLabels[dataIndexes[i]] = chart.data.labels[i];
});
meta.data = newMeta;
chart.data.datasets[0].data = dataArray;
chart.data.labels = newLabels;
}
}
完整代碼在這里:https : //jsfiddle.net/3seduh9k/
uj5u.com熱心網友回復:
這是更新:
if (chart.options.sort) {
let labels = chart.data.labels;
let dataArray = chart.data.datasets[0].data.slice();
let mapValueLabel = {};
dataArray.forEach((value, index) => {
mapValueLabel[value] = labels[index];
});
// sort data array as well
dataArray.sort((a, b) => b - a);
let meta = chart.getDatasetMeta(0);
let newLabels = [];
dataArray.forEach((a, i) => {
newLabels[i] = mapValueLabel[a];
});
chart.data.datasets[0].data = dataArray;
chart.data.labels = newLabels;
}
}
演示:https : //jsfiddle.net/woL9ynpv/
我的改變很簡單。我創建地圖以保存值和標簽:
map{value:label}
排序值后,我們迭代新的串列資料陣列并根據值鍵分配標簽。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/329514.html
標籤:javascript 文件 排序 图表.js y轴
上一篇:awk輸出不匹配的行
