组件
当前位置:   article > 正文

微信小程序云开发获取数据实时动态渲染Echarts折线图_echarts渲染实时数据

echarts渲染实时数据

1.先去云开发控制台创建一个数据表和一条数据,数据中num为Y轴数据,time为X轴数据,都为数组

2.配置xx.json

  1. {
  2. "usingComponents": {
  3. "ec-canvas": "../../ec-canvas/ec-canvas"
  4. }
  5. }

3.在xx.wxml中引入 <ec-canvas> 组件

  1. <view class="content">
  2. <ec-canvas id="mychart" canvas-id="mychart-multi" ec="{{ ec }}"></ec-canvas>
  3. </view>

4.在xx.js文件最顶部先引入import * as echarts from '../../ec-canvas/echarts';

import * as echarts from '../../ec-canvas/echarts';

5.设置好图表展示的样式配置

  1. function setOption(chart, xdata, ydata) {
  2. const option = {
  3. title: {
  4. text: "折线图",
  5. textStyle: { color: '#333', fontWeight: 'bold', fontSize: 14 }
  6. },
  7. xAxis: {
  8. type: 'category',
  9. data: xdata, //x轴上的动态数据
  10. },
  11. yAxis: {
  12. type: 'value'
  13. },
  14. series: [{
  15. data: ydata, //y轴上的动态数据
  16. type: 'line',
  17. color: '#ffc300'
  18. }]
  19. };
  20. chart.setOption(option)
  21. }

6.下面有个“echarts”就是我们第一步创建的数据库表名(echarts),还设置了60s刷新数据一次,不想要也可自行删除代码。

  1. Page({
  2. data: {
  3. ec: {
  4. lazyLoad: true
  5. },
  6. timer: ''//实时刷新,所以设置了个定时器
  7. },
  8. onLoad: function (options) {
  9. this.getOption();
  10. //每隔60s刷新一次
  11. this.setData({
  12. timer: setInterval(()=> {
  13. this.getOption();
  14. }, 60000)
  15. })
  16. },
  17. onReady: function () {
  18. this.Component = this.selectComponent('#mychart');
  19. },
  20. onUnload: function () {
  21. // 清除了定时器
  22. clearInterval(this.data.timer)
  23. },
  24. // 初始化图表
  25. init_echart: function (xdata, ydata) {
  26. this.Component.init((canvas, width, height) => {
  27. const chart = echarts.init(canvas, null, {
  28. width: width,
  29. height: height
  30. });
  31. setOption(chart, xdata, ydata)
  32. this.chart = chart;
  33. return chart;
  34. });
  35. },
  36. // 给图表加上数据
  37. getOption: function () {
  38. let db = wx.cloud.database().collection('echarts')
  39. db.get().then(res => {
  40. console.log('获取数据成功', res);
  41. this.init_echart(res.data[0].time, res.data[0].num)
  42. })
  43. .catch(err => {
  44. console.log('获取数据失败', err);
  45. })
  46. },
  47. });

7.最后就是展示。

关注公众号:   微信小程序:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/94244
推荐阅读
相关标签