我正在尝试将数据从json文件填充到Highchart。我的示例json文件与Highchart示例相同,我的data.json将是:
{"yData":[{
"name": "Tokyo",
"data": [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]
}, {
"name": "New York",
"data": [-0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5]
}, {
"name": "Berlin",
"data": [-0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0]
}, {
"name": "London",
"data": [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8]
}]}
我的html文件是
<!DOCTYPE>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>High chart using directive</title>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.5/angular.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script src="http://code.highcharts.com/highcharts.js"></script>
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<section ng-app="charts">
<div ng-controller="Ctrl">
<highchart chart='{{renderChart}}'></highchart>
<table>
<tr ng-repeat="record in jsondatafeed">
<td>{{record.Name}}</td>
<td>{{record.Score}}</td>
</tr>
</table>
</div>
</section>
</body>
</html>
var app = angular.module('charts', []);
app.directive('highchart', function () {
return {
restrict: 'E',
template: '<div></div>',
replace: true,
link: function (scope, element, attrs) {
scope.$watch(function () { return attrs.chart; }, function () {
if (!attrs.chart) return;
var charts = JSON.parse(attrs.chart);
$(element[0]).highcharts(charts);
});
}
};
});
app.controller('Ctrl', function ($scope, $http, $timeout) {
$http.get('data.json').success(function (data, status) {
var score = [];
var name = [];
for (var i = 0; i < data.length; i++) {
name.push(data[i].Name);
for (var j = 0; j < data.length; j++) {
score.push(data[j].Score);
}
}
$scope.renderChart = {
chart: {
type: 'line'
},
xAxis: {
categories:['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun','Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
},
yAxis: {
title: {
text: 'Temperature (°C)'
},
plotLines: [{
value: 0,
width: 1,
color: '#808080'
}]
},
series: [{
name: name,
data: score
}],
legend: {
enabled: false
}
};
}).error("error message");
$timeout($scope.fetch, 1000);
});
填充图表
但我需要从json文件中提供所有数据。我在这里错过了什么。 问候, Vinoth Kannan P
答案 0 :(得分:1)
您需要将数据阵列推送到系列中,
$scope.jsondatafeed = data.yData;
console.log($scope.jsondatafeed);
$scope.Plotcat = [];
$scope.PlotData = [];
for (var key in $scope.jsondatafeed) {
console.log($scope.jsondatafeed[key]); // the whole array (index)
$scope.PlotData.push($scope.jsondatafeed[key]);
var category = $scope.jsondatafeed[key];
$scope.Plotcat.push(category.name);
}
以下是DEMO APP