AngularJS引入Echarts的Demo
最近要用到图表展示,想了想,还是首选Echarts,HighCharts和D3.js备用吧,
而项目中也用到了AngularJS,所以需要把Echarts引入到AngularJs中一起使用,
试了试,最方便的还是用指令,(虽然指令有点不好调,用了再说)。
1、引入angular.js
2、引入echarts.js
3、引入jquery.js---可以省略
4、直接上代码:
- <!DOCTYPE html >
- <head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
- <title>Echarts--柱状图与饼图</title>
- <link rel="stylesheet" href="../jc/jquery-ui.css">
- <script type="text/javascript" src="../jc/jquery.min.js"></script>
- <script type="text/javascript" src="../jc/jquery-ui.min.js"></script>
- <script type="text/javascript" src="../jc/angular.min.js"></script>
- <script type="text/javascript" src="../3rd/echarts/echarts.js"></script>
- <style>
- html{
- height:100%;
- }
- </style>
- </head>
- <body data-ng-app="MyApp" style="height:100%;">
- <div data-ng-controller='MyCtrl' style="width: 100%;height: 100%;">
- <h3>Echarts柱状图与饼图---指令directive</h3>
- <div align="center" style="width: 80%; height:100%;">
- <div align="left">
- <select data-ng-model="chart"
- data-ng-options="x for (x, y) in myCharts"
- data-ng-change = "showChange(chart)"
- >
- </select>
- </div>
- <div data-ng-show="show" bar-charts data-source='groupData' style="width: 100%;height: 80%;"></div>
- <div data-ng-show="!show" pie-charts data-source='group' data-ng-repeat="group in groupData"
- style="width: 30%;height:30%;float: left;">
- </div>
- </div>
- </div>
- <script>
- angular.module('MyApp', [])
- .controller('MyCtrl', function($scope) {
- $scope.groupData = ['测试栏目1','测试栏目2','测试栏目3','测试栏目4','测试栏目5','测试栏目6'];
- $scope.chart = 0;
- $scope.show = true;
- $scope.myCharts = {
- "柱状图":0,
- "饼图":1
- };
- $scope.showChange = function(chart){
- if(chart==0){
- $scope.show = true;
- }else{
- $scope.show = false;
- }
- };
- })
- .directive('barCharts',function(){
- return{
- restrict:'AE',
- scope :{
- source:'='
- },
- template:'<div>这是柱图</div>',
- controller: function($scope){
- },
- link:function(scope,element,attr){
- console.log(scope.source);
- var chart = element.find('div')[0];
- var parent = element['context'];
- // console.log(parent.clientHeight+":"+parent.clientWidth);
- chart.style.width =parent.clientWidth+'px';
- chart.style.height =parent.clientHeight+'px';
- var myChart = echarts.init(chart);
- var option = {
- title:{
- text:'工作空间使用情况'
- },
- tooltip:{
- trigger:'axis',
- axisPointer:{
- type:'shadow'
- }
- },
- legend: {
- //data:['正常','警告','预警','剩余']
- },
- gird:{
- left: '5%',
- right: '5%',
- bottom: '5%',
- containLabel: true
- },
- xAxis:{
- type:'value'
- },
- yAxis:{
- type: 'category',
- data: scope.source //['测试栏目1','测试栏目2','测试栏目3','测试栏目4','测试栏目5','测试栏目6']
- },
- series:[
- {
- name:'已使用',
- type:'bar',
- stack:'存储空间',
- label:{
- normal:{
- show:true,
- position:'insideRight'
- }
- },
- barWidth:'80%',
- data:[100,200,300,260,50,120]
- },
- {
- name:'剩余',
- type:'bar',
- stack:'存储空间',
- label:{
- normal:{
- show:true,
- position:'insideRight'
- }
- },
- barWidth:'80%',
- data:[200,100,2,80,200,180]
- }
- ]
- };
- myChart.setOption(option);
- myChart.resize();
- }
- };
- })
- .directive('pieCharts',function(){
- return{
- restrict:'AE',
- scope :{
- source:'='
- },
- template:'<div>这是饼图</div>',
- controller: function($scope){
- },
- link:function(scope,element,attr){
- var chart = element.find('div')[0];
- var parent = element['context'];
- //console.log(parent.clientHeight+":"+parent.clientWidth);
- chart.style.width =parent.clientWidth+'px';
- chart.style.height =parent.clientHeight+'px';
- var myChart = echarts.init(chart);
- var option = {
- backgroudColor:'#F2F2F2',
- title : {
- text: '某一个栏目',
- x:'center',
- y:'bottom'
- },
- tooltip:{
- trigger:'item',
- formatter:'{a}<br/>{b} {c}({d}%)'
- },
- series:[
- {
- name:'空间使用',
- type:'pie',
- radius:'55%',
- center:['50%','60%'],
- data:[
- {value:50,name:'已使用'},
- {value:450,name:'未使用'}
- ],
- itemStyle:{
- emphasis: {
- shadowBlur: 10,
- shadowOffsetX: 0,
- shadowColor: 'rgba(0, 0, 0, 0.5)'
- }
- }
- }
- ]
- };
- myChart.setOption(option);
- myChart.resize();
- }
- };
- });
- </script>
- </body>
- </html>
一个Demo,就不按格式写了!
以上!
自定义数据展示颜色:
series:[
{
name:'已使用',
type:'bar',
stack:'存储空间',
label:{
normal:{
show:true,
position:'insideRight'
}
},
barWidth:'80%',
data:[
{
value:100,
itemStyle:{
normal:{
color: 3>2 ? '#CDCD19':'#00FA67'
}
}
},
{
value:200,
itemStyle:{
normal:{
color: 1>2 ? '#CDCD19':'#00FA67'
}
}
},
{
value:300,
itemStyle:{
normal:{
color: 3>2 ? '#CDCD19':'#00FA67'
}
}
},
{
value:260,
itemStyle:{
normal:{
color: 1>2 ? '#CDCD19':'#00FA67'
}
}
},
50,120]
},
{
name:'剩余',
type:'bar',
stack:'存储空间',
label:{
normal:{
show:true,
position:'insideRight'
}
},
itemStyle:{
normal:{
color:'#CBCBCB'
}
},
barWidth:'80%',
data:[200,100,2,80,200,180]
}
]
-------------------------------
series:[
{
name:'空间使用',
type:'pie',
radius:'55%',
center:['50%','60%'],
data:[
{value:50,name:'已使用',itemStyle:{
normal:{
color:'#324A5B'
}
}},
{value:450,name:'未使用',itemStyle:{
normal:{
color:'#C13530'
}
}}
],
itemStyle:{
emphasis: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
AngularJS引入Echarts的Demo的更多相关文章
- vue引入echarts、找不到的图表引入方法、图表中的点击事件
1.在vue-cli项目中添加webpack配置,本文引入的最新版本.在 3.1.1 版本之前 ECharts 在 npm 上的 package 是非官方维护的,从 3.1.1 开始由官方 EFE 维 ...
- vue按需引入echarts
下载安装echarts包:npm install echarts -D 一.全局引入 main.js中配置 import echarts from 'echarts' //引入echarts Vue. ...
- vue-webpack 引入echarts 注意事项
0.执行教程 https://www.cnblogs.com/goloving/p/8654176.html1.在index 中创建 div <!DOCTYPE html> <htm ...
- angular6.x 引入echarts
因为angular2+ 使用 ==typescript==开发,所以想要使用echarts,必须安装echarts针对angular的插件ngx-echarts.本文案列实际效果如上图. 安装ngx- ...
- mpvue中按需引入echarts
大家都知道小程序文件大小不能超过2M, 在项目中引入echarts后,文件大小远远超出2M了.因为echarts文件默认是包含所有图表代码的,所以文件体积会比较大.解决办法如下: 安装 首先我们先安装 ...
- 16、vue引入echarts,划中国地图
vue引入echarts npm install echarts --save main.js引入 import echarts from 'echarts' Vue.prototype.$echar ...
- 【React】react项目引入echarts插件 K线图
参考npm文档:https://www.npmjs.com/package/echarts-for-react 由于npm上已经有针对react项目出的echarts插件,所以在这里直接安装 第一步: ...
- vue按需引入/全局引入echarts
npm install echarts -S 1.按需引入 新建echarts.js公共引入 // 文件路径 @/lib/echarts.js 自行配置 // 加载echarts,注意引入文件的路径 ...
- 微信小程序引入ECharts组件
首先打开ECharts网页 https://echarts.apache.org/zh/tutorial.html#%E5%9C%A8%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8 ...
随机推荐
- corefile 设置
程序运行的过程中,可能会因为一些隐藏的bug导致崩溃,为了在出问题时,及时记录所在环境的情况,所以要设置core文件的产生.其实其本质就是把进程的内存保存到文件中去. 1.core文件的生成开关和大小 ...
- 景瑞地产商业智能BI整体实施过程
1.1行业背景 1.1.1景瑞地产 景瑞地产成立于1993年,专注于房地产开发,并一直秉持“永远诚信.恪守专业.锐意进取.共赢未来”的核心价值观和“舒适之道”的企业使命. 景瑞地产,源自上海.通过多年 ...
- 浏览器默认样式(user agent stylesheet)+cssreset
每种浏览器都有一套默认的样式表,即user agent stylesheet,在写网页时,没有指定的样式,按浏览器内置的样式表来渲染.这是合理的,像word中也有一些预留样式,可以让我们的排版更美观整 ...
- [转]VS2010中如何创建一个WCF
本文转自:http://www.cnblogs.com/zhangliangzlee/archive/2012/08/28/2659701.html 转载:http://www.cnblogs.com ...
- Java的各种工具类
下面是java的各种工具,包括获取时间和时间比较,检验集合和字符串是否为空和长度大小等等 1 import java.io.BufferedReader; import java.io.File; i ...
- Appium学习实践(四)结构优化
随着我们测试脚本中的用例越来越多,我们不可能将所有的用例都放在同一个脚本中,所以我们需要优化我们的结构.将脚本放在一个文件夹中,再通过别的脚本来执行脚本.这样,我们也可以有选择性的执行我们的脚本 先来 ...
- JavaSE之概述与基本语法
嘛,这个本来应该发在OOP之前的,无所谓了,补发一下,这篇文章只会对JavaSE的语法做一个基本的概述而已,我会在最近新开一个新坑,也就是JavaEE系列,以后还会有Cpp(相对于C++,我还是更喜欢 ...
- AngularJs定制样式插入到ueditor中的问题总结
总结一下自己给编辑器定制样式的过程中所遇到的问题,主要是编辑器的二次开发接口,以及用angular定制样式,问题不少,终于在**的帮助下,完成了,还剩下老版本和新版本的交互没有弄好,不过不难.下面分别 ...
- POJ3107Godfather[树形DP 树的重心]
Godfather Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 6121 Accepted: 2164 Descrip ...
- CF 676B Pyramid of Glasses[模拟]
B. Pyramid of Glasses time limit per test 1 second memory limit per test 256 megabytes input standar ...