【发布时间】:2018-06-08 06:03:36
【问题描述】:
我有两个 JSON 端点。我正在尝试绘制带有向下钻取的 Highcharts 条形图。向下钻取将指向另一个 JSON 端点。在图中,数据来自端点动态。
JSON 1 :- https://api.myjson.com/bins/156yh3
JSON 1 结构:-
[{
"name": "cricket",
"number": "2"
}]
它将首先使用 JSON 1 数据绘制图形。在第一张图中,X 轴代表"name",Y 轴代表"number"。每当我们单击任何条时,它将调用 JSON 2 端点并将单击的条 "name" 作为 URL 参数传递。
JSON 2 端点看起来像,api.domain.com/{{name}}//
如果我们点击“橙色”栏,那么请求 url 将变为api.domain.com/cricket/
JSON 2 结构:-
[{
"player": "xyz",
"points": "2"
}]
在第二张图中,X 轴代表"player",Y 轴代表"points"。我想,当点击一个栏时,我必须在drilldown 中调用Ajax 请求。我可以绘制第一张图,但是推荐的绘制第二张图的方法是什么,这将深入研究。
图 1 的代码:-
$(function() {
$.getJSON("https://api.myjson.com/bins/156yh3", function(data) {
console.log(data);
Highcharts.chart('container', {
chart: {
type: 'column'
},
title: {
text: 'Name Vs Numbers'
},
subtitle: {
text: 'Chart View Here'
},
xAxis: {
type: 'category',
categories: data.map(function(x) {
return x.name;
})
},
yAxis: {
title: {
text: 'Numbers'
}
},
legend: {
enabled: false
},
plotOptions: {
series: {
borderWidth: 0,
dataLabels: {
enabled: true,
format: '{point.y:.1f}'
}
}
},
tooltip: {
headerFormat: '<span style="font-size:11px">{series.name}</span><br>',
pointFormat: '<span style="color:{point.color}">{point.name}</span>: <b>{point.y:.2f}</b> of total<br/>'
},
series: [{
colorByPoint: true,
data: data.map(function(x) {
return x.number * 1;
})
}]
});
});
});
HTML :-
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://code.highcharts.com/highcharts.js"></script>
<div id="container" style="min-width: 310px; height: 400px; margin: 0 auto;"></div>
【问题讨论】:
标签: javascript jquery json ajax highcharts