根据返回的数据从 highcharts 循环 xAxis
Loop in xAxis from highcharts according to returned data
我有以下数据return来自php:
# Mes, Total, Categoria
2022-05, 1, Bullying (Mobbing, Bossing, Pessoal, Gossip)
2022-05, 1, Preocupação relativas à saúde e segurança
2022-05, 1, Suspeita de Roubo, Corrupção ou Desfalque
2022-04, 1, Suspeita de Roubo, Corrupção ou Desfalque
2022-05, 1, Feedback positivo ou elogio
然后我想用这些数据创建一个图表,此时已经 return 正确处理了大部分数据:
为了 return 我正在使用以下循环的系列:
var series = [];
for (var i = 0; i < data.length; i++) {
Mes = data[i][0];
Total = data[i][1];
Categoria = data[i][2];
series.push({
name: Categoria,
data: [Total],
stack: Mes,
dataLabels: {
enabled: true,
}
});
}
这样 return 如上图所示正确。问题是 xAxis 类别,我无法 return 月份列中存在的两个日期。
我正在尝试这种方式,但它不起作用:
var xAxis = [];
for (var i = 0; i < data.length; i++) {
Mes = data[i][0];
Total = data[i][1];
Categoria = data[i][2];
xAxis.push({
categories: [Mes],
labels: {
skew3d: true,
style: {
fontSize: '16px'
}
}
});
}
你能帮忙吗?
堆栈选项没有像您在示例中期望的那样引用类别索引。
您使用 stack: 'A' 和 stack: B' 并且每个系列都有一个 y 值。这意味着两个堆叠的列被分组为一个类别。
查看 API 参考及其演示: https://api.highcharts.com/highcharts/series.column.stack
要为每个类别实现堆叠列,您需要将 Mes 解析为数字(时间戳)并将其作为 x
值传递。
var series = [];
for (var i = 0; i < data.length; i++) {
Mes = new Date(data[i][0]).getTime() + 60 * 60 * 1000,
Total = data[i][1];
Categoria = data[i][2];
series.push({
name: Categoria,
data: [{x: Mes, y: Total}],
dataLabels: {
enabled: true,
}
});
}
然后将 xAxis.type
设置为 datetime
并更改标签格式。
xAxis: {
type: 'datetime',
labels: {
format: '{value:%Y-%m}'
},
},
我有以下数据return来自php:
# Mes, Total, Categoria
2022-05, 1, Bullying (Mobbing, Bossing, Pessoal, Gossip)
2022-05, 1, Preocupação relativas à saúde e segurança
2022-05, 1, Suspeita de Roubo, Corrupção ou Desfalque
2022-04, 1, Suspeita de Roubo, Corrupção ou Desfalque
2022-05, 1, Feedback positivo ou elogio
然后我想用这些数据创建一个图表,此时已经 return 正确处理了大部分数据:
为了 return 我正在使用以下循环的系列:
var series = [];
for (var i = 0; i < data.length; i++) {
Mes = data[i][0];
Total = data[i][1];
Categoria = data[i][2];
series.push({
name: Categoria,
data: [Total],
stack: Mes,
dataLabels: {
enabled: true,
}
});
}
这样 return 如上图所示正确。问题是 xAxis 类别,我无法 return 月份列中存在的两个日期。
我正在尝试这种方式,但它不起作用:
var xAxis = [];
for (var i = 0; i < data.length; i++) {
Mes = data[i][0];
Total = data[i][1];
Categoria = data[i][2];
xAxis.push({
categories: [Mes],
labels: {
skew3d: true,
style: {
fontSize: '16px'
}
}
});
}
你能帮忙吗?
堆栈选项没有像您在示例中期望的那样引用类别索引。
您使用 stack: 'A' 和 stack: B' 并且每个系列都有一个 y 值。这意味着两个堆叠的列被分组为一个类别。
查看 API 参考及其演示: https://api.highcharts.com/highcharts/series.column.stack
要为每个类别实现堆叠列,您需要将 Mes 解析为数字(时间戳)并将其作为 x
值传递。
var series = [];
for (var i = 0; i < data.length; i++) {
Mes = new Date(data[i][0]).getTime() + 60 * 60 * 1000,
Total = data[i][1];
Categoria = data[i][2];
series.push({
name: Categoria,
data: [{x: Mes, y: Total}],
dataLabels: {
enabled: true,
}
});
}
然后将 xAxis.type
设置为 datetime
并更改标签格式。
xAxis: {
type: 'datetime',
labels: {
format: '{value:%Y-%m}'
},
},