html - Highchart:如何在 JSON 响应下方绘制带有线条的堆积条形图
问题描述
我正在使用下面的 Json 来绘制带有线条的堆叠图(如下图所示)
[{
"TD": "2",
"TE": "5",
"TI": "3",
"TLI": "2",
"TR": "2",
"hour": "0",
"totalCount": "14"
},
{
"FINGERVERIFY": "4",
"LI": "1",
"TD": "3",
"TE": "9",
"TI": "4",
"TLI": "3",
"TLIP": "2",
"TR": "3",
"hour": "1",
"totalCount": "29"
},
{
"LI": "1",
"LIP": "1",
"LLI": "1",
"LLIP": "1",
"LR": "1",
"LRP": "1",
"hour": "2",
"totalCount": "6"
},
{
"FE": "2",
"TE": "2",
"hour": "8",
"totalCount": "4"
}
]
基于以下几点的图表描述:-
- x 轴:来自 Json 属性的“小时”
- 行的尖端显示“totalCount”
- 堆积条显示 Json 的其他属性。
任何人都可以通过使用上面的 Json 来帮助我实现上面与屏幕截图类似的图表吗?
解决方案
根据您的数据,您需要构建 Highcharts 所需的系列结构。例子:
const series = [];
data.forEach(dataEl => {
for (const key in dataEl) {
if (key === 'hour') continue;
const existingSeries = series.find(s => s.name === key);
if (!existingSeries) {
series.push({
name: key,
type: key === 'totalCount' ? 'line' : 'column',
data: [[Number(dataEl.hour), Number(dataEl[key])]]
});
} else {
existingSeries.data.push([Number(dataEl.hour), Number(dataEl[key])]);
}
}
});
现场演示:http: //jsfiddle.net/BlackLabel/40pgqn9j/
推荐阅读
- java - Selenium Webdriver“Actions”的执行速度有多快?
- r - 读取“下一行分隔”的文本文件
- python - Pandas Dataframe 无法定位具有不同数据类型的列
- c - 尝试从用户输入的数组中获取最小数字时出现分段错误
- sql-server - 获取 Datagridview 组合框中所选项目的 ID 并显示取决于 Selectedvalue 的表单
- python - 如何反向批量标准化
- android - android 是否加密通过 HttpConnection Post 或 Retrofit 等库发送的 https 标头?
- javascript - C3JS 条形图,带有颜色的特定顺序
- angular - Angular 7 EventSource 无限期地获取流
- jquery - XNAT JSON 获取项目 ID 列表以填充下拉列表以供选择