// this function returns our chart data as a promise$scope.dataFromPromise=function(){
var deferred =$q.defer();
var data = [{
year:2005,
income:23.5,
expenses:18.1
}, {
year:2006,
income:26.2,
expenses:22.8
}, {
year:2007,
income:30.1,
expenses:23.9
}, {
year:2008,
income:29.5,
expenses:25.1
}, {
year:2009,
income:24.6,
expenses:25
}];
deferred.resolve(data)
returndeferred.promise;
};
// We can optionally pass a promise to the options attribute on the AmChartsDirective// to delay the chart rendering until the promise resolves$scope.amChartOptions=$timeout(function(){
return {
// we can also use a promise for the data property to delay the rendering of// the chart till we actually have data
data:$scope.dataFromPromise(),
type:"serial",
theme:'black',
categoryField:"year",
rotate:true,
pathToImages:'https://cdnjs.cloudflare.com/ajax/libs/amcharts/3.13.0/images/',
legend: {
enabled:true
},
chartScrollbar: {
enabled:true,
},
categoryAxis: {
gridPosition:"start",
parseDates:false
},
valueAxes: [{
position:"top",
title:"Million USD"
}],
graphs: [{
type:"column",
title:"Income",
valueField:"income",
fillAlphas:1,
}]
}
}, 1000)
If you do not specify a category field or a value field, the directive will assume the category field is at index [0] and the value field is at index [1]. Using the example above, 'year' would be the category field, and 'income' would be the value field.
The Tidelift Subscription provides access to a continuously curated stream of human-researched and maintainer-verified data on open source packages and their licenses, releases, vulnerabilities, and development practices.