我是新来的Highcharts。我可以显示标题,但由于某些原因,x和y轴数据不会显示。我正在使用php从数据库中获取数据,并使用JSON对其进行编码。这是我的HTML:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="https://code.jquery.com/jquery-1.12.0.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var options = {
chart: {
renderTo: 'container',
type: 'bar'
},
title: {
text: 'TCP Upload Speed Averages for Los Angeles County in 2012',
x: -20 //center
},
subtitle: {
text: '',
x: -20
},
xAxis: {
categories: []
},
yAxis: {
min:0,
title: {
text: 'TCP Upload Averages'
},
labels: {
overflow: 'justify'
}
},
legend: {
layout: 'vertical',
align: 'right',
verticalAlign: 'top',
x: -10,
y: 100,
borderWidth: 0
},
plotOptions: {
bar: {
dataLabels: {
enabled: true
}
},
series: {
stacking:'percent'
}
},
series: []
};
$.getJSON("2012Data.php", function(json) {
options.xAxis.categories = json[0]['data'];//xAxis: {categories: []}
options.series[0] = json[1];
//chart = new Highcharts.Chart(options);
});
chart = new Highcharts.Chart(options);
});
</script>
<script src="highstock.js" ></script>
<script src="http://code.highcharts.com/modules/exporting.js"></script>
</head>
<body>
<div id="container" style="width: 600px; height: 400px; margin: 0 auto"></div>
</body>
这是来自php的JSON数据:
[{“ name”:“ Providers”,“ data”:[“ AT&T”,“ Sprint”,“ T-Mobile”,“ Verizon”]},{“ name”:“ Averages”,“ data”:[972.03790849673 ,679.63696969697,992.06606060606,4520.2101851852]}]]
谢谢您的帮助!
由于未加载任何数据,因此图表仅显示标题。并且尽管您的AJAX调用可能有效:在回调中设置选项为时已晚,因为回调很可能仅在创建图表之后才被调用。
如果您//chart = new Highcharts.Chart(options);
在getJSON
回调中取消注释该行是否对您有用(当然,删除其他Highcharts构造函数也可以将两行向下调用)?
但是,加载数据的更惯用的方法是为load
图表的-Event创建一个回调,触发您的AJAX-Request,然后将数据插入已创建的图表中。我为您创建了一个JSFiddle,在这里我通过来模拟对您的php-script的调用timeout
。您应该使用以下加载回调来使图表正常工作:
chart: {
events: {
load: function(event) {
var chart = event.target;
$.getJSON("2012Data.php", function(json) {
var xAxis = chart.xAxis[0];
xAxis.setCategories(json[0]['data']);
chart.addSeries(json[1]);
});
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句