gpt4 book ai didi

javascript - xCharts 按星期几排序

转载 作者:数据小太阳 更新时间:2023-10-29 04:42:29 27 4
gpt4 key购买 nike

我正试图解决 xCharts 的一个小问题。我想显示一个条形图,显示带有星期几的数字。我已经做到了这一点,但是我在让它以正确的顺序显示时遇到了问题。见下图:

enter image description here

如您所见,星期几的顺序不正确。通过阅读他们网站上的文档,我可以看出它与提供选项 sortX 有关,所以我尝试了很多不同的东西,但它们对我来说并没有真正起作用。

下面是我使用的代码:

var data3 = {
"xScale": "ordinal",
"yScale": "linear",
"type": "bar",
"main": [{
"className": ".bstats",
"data": [{
"x": "Monday",
"y": 1
}, {
"x": "Tuesday",
"y": 1
}, {
"x": "Wednesday",
"y": 1
}, {
"x": "Thursday",
"y": 1
}, {
"x": "Friday",
"y": 1
}, {
"x": "Saturday",
"y": 1
}, {
"x": "Sunday",
"y": 1
}]
}]
};

var opts = {
"tickFormatX": function (x) {
return x.substr(0, 3);
},
"sortX": function (a, b) {
/* Not sure what to do here */
return 0;
}
};

var myChart = new xChart('bar', data3, '#day_chart', opts);
var set = [];

$.getJSON('/dashboard/get/busy-days', function (data) {
$.each(data, function (key, value) {
set.push({
x: value.x,
y: parseInt(value.y, 10)
});
});

myChart.setData({
"xScale": "ordinal",
"yScale": "linear",
"main": [{
className: ".bstats",
data: set
}]
});
});

JSON请求返回的数据如下:

[
{
"x":"Monday",
"y":48
},
{
"x":"Tuesday",
"y":65
},
{
"x":"Wednesday",
"y":67
},
{
"x":"Thursday",
"y":62
},
{
"x":"Friday",
"y":83
},
{
"x":"Saturday",
"y":65
},
{
"x":"Sunday",
"y":56
}
]

非常感谢任何帮助。

最佳答案

为星期几(mydays)创建一个对象应该是这样的:

['Monday':1,'Tuesday':2...]

并且在 sortX 上只实现排序。

    "sortX": function (a, b) {
if (mydays[a.x] > mydays[b.x])
return 1;
if (mydays[a.x] < mydays[b.x])
return -1;
return 0;
// or return (!mydays[a.x] && !mydays[b.x]) ? 0 : (mydays[a.x] < mydays[b.x]) ? -1 : 1;

}

链接:

http://tenxer.github.io/xcharts/docs/#opt-sortX

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

关于javascript - xCharts 按星期几排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23553067/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com