angularjs+highcharts开发

Posted 雨停了

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了angularjs+highcharts开发相关的知识,希望对你有一定的参考价值。

1、angularjs+highcharts,highcharts的引入要通过指令的方式,要引入highcharts-ng.js文件,但是要注意此文件的中的数据格式。{options:{},series:{}},options包括了大部分的配置,series是图表数据

 2、在html页面中可直接写写入:<highchart series=\'chart.series\' options=\'series.options\'></highchart>

3、其中出现了样式变为全黑的情况,解决方法是引入他们官网的highcharts.js就可以解决,同时导出为黑色的图片也得到了解决

4、注意highcharts-ng.js的源文件的写法,找到一个适合自己项目的文件,或者是将文件改成自己需要的样子,其中图表自适应的问题,就是将指令中的template:<div></div>,replace:true,便可解决

 5、代码如下:

  1 <!DOCTYPE html>
  2 <html lang="en" ng-app="myChart">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>Title</title>
  6     <!--<link rel="stylesheet" href="css/highcharts.css">-->
  7     <script src="js/jquery.min.js"></script>
  8     <script src="js/highcharts.js"></script>
  9     <script src="js/exporting.js"></script>
 10     <script src="js/angular.min.js"></script>
 11     <script src="js/highcharts-ng.js"></script>
 12 </head>
 13 <body>
 14     <div ng-controller="BigChart">
 15         <highchart series="chartConfig.series" options="chartConfig.options" class="span10"></highchart>
 16     </div>
 17     <script>
 18         var myApp = angular.module(\'myChart\',["highcharts-ng"]);
 19         Highcharts.setOptions({
 20             lang:{
 21                 contextButtonTitle: "图表导出菜单",
 22                 downloadJPEG:"下载 JPEG 图片",
 23                 downloadPDF:"下载 PDF 文件",
 24                 downloadPNG:"下载 PNG 文件",
 25                 downloadSVG:"下载 SVG 文件",
 26                 printChart:"打印图表"
 27             }
 28         });
 29         var dafaultMenuItem = Highcharts.getOptions().exporting.buttons.contextButton.menuItems;
 30         myApp.controller(\'BigChart\', [\'$scope\',function($scope) {
 31             var chartConfig = {
 32                 options:{
 33                     chart: {
 34                         type: \'column\'
 35                     },
 36                     exporting: {
 37                         buttons: {
 38                             contextButton: {
 39                                 // 自定义导出菜单项目及顺序
 40                                 menuItems: [
 41                                     dafaultMenuItem[0],
 42                                     dafaultMenuItem[2],
 43                                     dafaultMenuItem[3],
 44                                     dafaultMenuItem[4],
 45                                     dafaultMenuItem[5]
 46                                 ]
 47                             }
 48                         }
 49                     },
 50                     title: {
 51                         text: \'Stacked column chart\'
 52                     },
 53                     xAxis: {
 54                         categories: [\'Apples\', \'Oranges\', \'Pears\', \'Grapes\', \'Bananas\']
 55                     },
 56                     yAxis: {
 57                         min: 0,
 58                         title: {
 59                             text: \'Total fruit consumption\'
 60                         },
 61                         stackLabels: {
 62                             enabled: true,
 63                             style: {
 64                                 fontWeight: \'bold\',
 65                                 color: (Highcharts.theme && Highcharts.theme.textColor) || \'gray\'
 66                             }
 67                         }
 68                     },
 69                     legend: {
 70                         align: \'right\',
 71                         x: -70,
 72                         verticalAlign: \'top\',
 73                         y: 20,
 74                         floating: true,
 75                         backgroundColor: (Highcharts.theme && Highcharts.theme.background2) || \'white\',
 76                         borderColor: \'#CCC\',
 77                         borderWidth: 1,
 78                         shadow: false
 79                     },
 80                     tooltip: {
 81                         formatter: function() {
 82                             return \'<b>\'+ this.x +\'</b><br/>\'+
 83                                     this.series.name +\': \'+ this.y +\'<br/>\'+
 84                                     \'Total: \'+ this.point.stackTotal;
 85                         }
 86                     },
 87                     plotOptions: {
 88                         column: {
 89                             stacking: \'normal\',
 90                             dataLabels: {
 91                                 enabled: true,
 92                                 color: (Highcharts.theme && Highcharts.theme.dataLabelsColor) || \'white\',
 93                                 style: {
 94                                     textShadow: \'0 0 3px black, 0 0 3px black\'
 95                                 }
 96                             }
 97                         }
 98                     },
 99                 },
100                 series: [{
101                     name: \'John\',
102                     data: [5, 3, 4, 7, 2]
103                 }, {
104                     name: \'Jane\',
105                     data: [2, 2, 3, 2, 1]
106                 }, {
107                     name: \'Joe\',
108                     data: [3, 4, 4, 2, 5]
109                 }]
110             };
111             $scope.chartConfig = chartConfig;
112 
113 //            $(\'#container\').highcharts(chartConfig);
114         }])
115     </script>
116 </body>
117 </html>

6、效果如下:

 

以上是关于angularjs+highcharts开发的主要内容,如果未能解决你的问题,请参考以下文章

Highcharts:无法使用AngularJS读取未定义的属性'parentGroup'

AngularJS引入Echarts的Demo

ng升级两个版本的Highcharts,错误16

Angularjs Ionic - 移动设备和平板电脑的不同布局

java代码实现highchart与数据库数据结合完整案例分析---饼状图

如何将 Flot 与 AngularJS 集成?