1 概述

  • echarts是百度的开源图表插件
  • Angular中引入echarts网上教程很多
  • Angular引入echarts,并使用动态刷新

2 安装

请参考大神的博客:https://blog.csdn.net/qq_35321405/article/details/80340969

3 参考DEMO

var myChart = echarts.init(document.getElementById('main'));

setInterval(function () {
for (var i = 0; i < 5; i++) {
data.shift();
data.push(randomData());
}
// 需要获取到echarts图表实例
myChart.setOption({
series: [{
data: data
}]
});
}, 1000);

4 Anuglar动态刷新

(1)app.component.html

<div #myCharts echarts [options]="options"></div>

(2)app.component.ts

@Component({
selector: 'app',
templateUrl: './app.component.html'
})
export class AppComponent implements OnInit, OnDestroy {
@ViewChild('myCharts') myCharts: ElementRef; options; private timer; constructor(private es: NgxEchartsService){
var data = [];
var now = +new Date(1997, 9, 3);
var oneDay = 24 * 3600 * 1000;
var value = Math.random() * 1000;
for (var i = 0; i < 1000; i++) {
data.push(this.randomData());
}
this.options = {
title: {
text: '动态数据 + 时间坐标轴'
},
tooltip: {
trigger: 'axis',
formatter: function (params) {
params = params[0];
var date = new Date(params.name);
return date.getDate() + '/' + (date.getMonth() + 1) + '/' + date.getFullYear() + ' : ' + params.value[1];
},
axisPointer: {
animation: false
}
},
xAxis: {
type: 'time',
splitLine: {
show: false
}
},
yAxis: {
type: 'value',
boundaryGap: [0, '100%'],
splitLine: {
show: false
}
},
series: [{
name: '模拟数据',
type: 'line',
showSymbol: false,
hoverAnimation: false,
data: data
}]
};
} ngOnInit() {
this.timer = setInterval(function () {
for (var i = 0; i < 5; i++) {
data.shift();
data.push(randomData());
}
this.es.getInstanceByDom(this.myCharts.nativeElement).setOption({
series: [{
data: data
}]
});
}, 1000);
} ngOnDestroy() {
if (this.timer) clearInterval(this.timer);
} private randomData() {
now = new Date(+now + oneDay);
value = value + Math.random() * 21 - 10;
return {
name: now.toString(),
value: [
[now.getFullYear(), now.getMonth() + 1, now.getDate()].join('/'),
Math.round(value)
]
}
}
}

5 总结

(1)获取dom对象

  • Js使用document.getElementById("#id")获取dom元素
  • Angular使用模板和@ViewChild("#id")获取ElementRef,ElementRef.nativeElement就可以得到dom元素了

(2)获取echarts实例对象

  • Js使用了echarts.init方法返回了新的实例,实际上echarts.getInstanceByDom(dom对象)可以获取一个已经实例化的echarts对象
  • Angular注入NgxEchartsService服务,它等同于js的echarts,即它有getInstanceByDom方法,接下来和Js操作就一样了

Angular7如何动态刷新Echarts图表的更多相关文章

  1. Vue如何使用动态刷新Echarts组件

    这次给大家带来Vue如何使用动态刷新Echarts组件,Vue使用动态刷新Echarts组件的注意事项有哪些,下面就是实战案例,一起来看一下. 需求背景:dashboard作为目前企业中后台产品的“门 ...

  2. echarts图表第一个案例

    1.action中获取到数据 @Override public String execute() throws Exception { List<Student> find = echar ...

  3. echarts图表标签(axisLabel)折行

    在项目中遇到了一个echarts图表标签过长需折行的需求,so引出这篇总结,啦啦啦有帮助就多多支持啦,撒花撒花撒花~~~~ 在此不对echarts其他用法做解释,详细见echarts文档(点击前往) ...

  4. ECharts图表中级入门之formatter:夜谈关于ECharts图表内的数据格式化方法

    来源于:http://www.ithao123.cn/content-3751220.html 格式化之所以存在,主要是因为我们想把一些不够人性化的内容通过某种处理让其变得人性化,便于用户更好地理解内 ...

  5. Echarts图表控件使用总结2(Line,Bar)—问题篇

    Echarts图表控件使用总结1(Line,Bar):http://www.cnblogs.com/hanyinglong/p/Echarts.html 1.前言 a.前两天简单写了一篇在MVC中如何 ...

  6. ***ECharts图表入门和最佳实践

    ECharts数据图表系统? 5分钟上手! [ECharts简介] ECharts开源来自百度商业前端数据可视化团队,基于html5 Canvas,是一个纯Javascript图表库,提供直观,生动, ...

  7. ASP.NET MVC + ECharts图表案例

    废话不多说直接讲讲今天要做的事. 利用微软爸爸的MVC框架结合百度的良心产品ECharts图表进行动态图表的生成,本文以柱状图为例. ECharts下载以及相关文档:http://echarts.ba ...

  8. 怎样把echarts图表做成响应式的

    如果想要把echarts图表给做成响应式的那么就应该用rem 单位,给图表的外围容器设置rem 单位,然后调用jquery 的resize方法,$(window).resize(function(){ ...

  9. Echarts图表统计学习

    史上最全的Echarts图表学习文档 http://echarts.baidu.com/doc/doc.html 勤加练习,多做总结! http://www.stepday.com/topic/?79 ...

随机推荐

  1. Visual Studio Code(VS Code)命令行的使用(1)

    在终端中输入如下命令,打开VS Code界面. code 在终端中输入如下命令,打印出 VS Code 命令行所支持的所有参数. code --help 在 code 命令后加上文件或者文件夹的地址, ...

  2. Java-基于 Instrument 的 Agent

    Agent 为 JVMTI 的客户端. 这里记录的是基于Java Instrument 的 Agent 实现,还有直接基于 JVMTI 的 Agent 实现. 在 JDK1.5 以后,我们可以使用 A ...

  3. create-react-app 工程,如何修改react端口号?

    概要: 3000端口是webpack配置里面写的,可以通过传递一个PORT全局变量,来修改这个端口.当然,您还可以在node_modules/react-scripts/目录下面,批量搜索替换3000 ...

  4. ubuntu 18.04设置开机自动挂载移动硬盘

    首先在命令行执行df -h指令,可以看到如下结果: zifeiy@zifeiy-PC1:~$ df -h 文件系统 容量 已用 可用 已用% 挂载点 udev 964M 0 964M 0% /dev ...

  5. Navicat连接MySQL 8出现2059 - authentication plugin 'caching_sha2_password'的解决办法

    进入MySQL控制台,执行如下命令: use mysql; ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY ...

  6. 文件夹中含有子文件夹,修改子文件夹中的图像存储格式(python实现)

    文件夹中含有子文件夹,修改子文件夹中的图像存储格式,把png图像改为jpg图像,python代码如下: import os import cv2 filePath = 'C:\\Users\\admi ...

  7. 单元测试ppt

      单元测试ppt思路详解 目前的状况:1,现在很多单元测试只是利用@Test注解把代码或者整个请求接口内的business做测试2,单测的过程就很多查数据库的方法,但是没必要每次都测sql,因为sq ...

  8. 最新 唯品会java校招面经 (含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.唯品会等10家互联网公司的校招Offer,因为某些自身原因最终选择了唯品会.6.7月主要是做系统复习.项目复盘.LeetCo ...

  9. spring的控制器如何获取参数

    1.控制器代码 获取参数的注解 @RequestParam(name="name", required=false, defaultValue="World") ...

  10. [转载]由浅入深探究mysql索引结构原理、性能分析与优化

    第一部分:基础知识第二部分:MYISAM和INNODB索引结构1. 简单介绍B-tree B+ tree树 2. MyisAM索引结构 3. Annode索引结构 4. MyisAM索引与InnoDB ...