ec-canvas 在小程序上的使用(二)

简介: ec-canvas 在小程序上的使用

ec-canvas 在小程序上的使用(一)https://developer.aliyun.com/article/1426112


IV. 使用ec-canvas绘制图表

1. 根据echarts各组件属性设置ec-canvas参数

ec-canvas会将ECharts实例中的option参数解析为对应canvas的属性来渲染图表。根据不同组件的属性,ec-canvas会将option参数解析为对应的canvas参数。

以下是ec-canvas中使用到的一些属性参数及其对应的ECharts配置项:

  • canvas: canvas自身的属性,例如id、style等。
  • subtitle: 副标题的相关属性,例如textStyle
  • yAxis: 直角坐标系中y轴的相关属性,例如axisLine、axisTick、axisLabel、splitLine、min、max等。
  • xAxis: 直角坐标系中x轴的相关属性,例如axisLine、axisTick、axisLabel、splitLine等。
  • tooltip: 提示框组件的相关属性,例如trigger、formatter、axisPointer等。
  • grid: 直角坐标系内绘图网格的相关属性,例如left、right、top、bottom、width、height、containLabel等。
  • series: 数据系列的相关属性,例如symbol、symbolSize、itemStyle等。

通过在option参数中设置相应属性,可以改变ECharts图表的展现形式。例如,可以通过设置xAxis中的axisLineaxisTick以及axisLabel属性来自定义x轴,通过设置tooltip属性来定制提示框的样式等。

总之,在使用ec-canvas中,需要熟悉各个组件的参数属性,以及对应的ECharts配置项,以便将canvas上的图表效果与设计要求相匹配。

2. 配置图表的样式、类型、数据

echarts中,通过配置option对象来配置图表样式、类型、数据。

option对象是一个包含各种配置参数的json对象,包含多个属性,每个属性对应不同的配置项,比如:标题、x轴、y轴、数据等。

下面是一个简单的示例,用于创建一个柱状图例子:

// 引入 ECharts 主模块
import * as echarts from '../../ec-canvas/echarts';
Page({
  onLoad: function (options) {
    this.setData({
      ec: {
        // 组件 ID
        id: 'chart1',
        // canvas 宽度,单位为px
        width: 360,
        // canvas 高度,单位为px
        height: 240,
        // ECharts配置项
        option: {
          // 图表的标题
          title: {
            text: '销售量'
          },
          // 柱状图
          series: [{
            type: 'bar',
            data: [5, 20, 36, 10, 10, 20]
          }]
        }
      }
    });
  }
})

在上面的代码中,我们通过在data中设置一个ec对象,然后在onLoad函数中更新这个对象的值。ec对象包含了组件的ID、宽度、高度和option对象。在option中,我们定义了图表的标题和一个柱状图。其中柱状图的数据为一个长度为6的数组,每个值对应一个柱子的高度。

可以看出,通过简单地配置option对象,我们就可以完成数据的设置和图表的样式定制。可以根据ECharts的文档和API进一步了解图表类型、数据格式以及各种美化操作。

3. 使用setOption方法刷新图表

如果需要更新已经绘制的图表,可以使用setOption方法。

例如,在一个柱状图中,我们可以通过点击按钮,动态地更新数据。

完整的代码示例如下:

import * as echarts from '../../ec-canvas/echarts';
let chart = null;
function initChart(canvas, width, height) {
  chart = echarts.init(canvas, null, {
    width: width,
    height: height
  });
  canvas.setChart(chart);
  const option = {
    title: {
      text: '销售量'
    },
    xAxis: {
      type: 'category',
      data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    },
    yAxis: {
      type: 'value'
    },
    series: [{
      type: 'bar',
      data: [5, 20, 36, 10, 10, 20, 8]
    }]
  };
  chart.setOption(option);
  return chart;
}
Page({
  data: {
    ec: {
      onInit: initChart
    }
  },
  updateChart: function() {
    const option = {
      series: [{
        data: [15, 30, 46, 20, 20, 30, 18]
      }]
    };
    chart.setOption(option);
  }
})

在上面代码中,使用initChart函数初始化图表,设置了初始option。数据系列中的data用一个长度为7的数组来定义,表示每一个数据点对应的显示值。在updateChart函数中,通过更改数据系列中的data数组,用setOption方法更新图表的数据。当触发按钮点击事件时,调用updateChart函数实现图表的刷新。只需要更改视图中图表对应的option,再调用 setOption 方法进行更新即可。

当然,除了数据的更新,你还可以使用 setOption 函数来更新其他样式配置,比如标题、坐标系、图例、标记等。

4. 修改图表的参数并刷新画面

要修改图表参数并刷新画面,可以使用以下两种方式:

方式一:直接更新option

可以使用 chart.getOption() 获取当前图表参数,修改需要修改的属性后,再用 chart.setOption(option) 方法设置当前参数并刷新画面。

例如:

const option = chart.getOption();
option.title.text = "新标题";
option.xAxis[0].data = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
chart.setOption(option);

上述代码中,我们首先使用 getOption 方法获取了当前图表的 option 参数,然后修改了参数中的 titlexAxis,最后使用 setOption 方法将新的参数设置并刷新画面。这里修改了标题和x轴,其他的配置同理。

方式二:通过onInit方法更新option

通过修改onInit方法的调用参数,可以进行视图的刷新和重新绘制。

例如:

let chart = null;
function initChart(canvas, width, height, dpr) {
  chart = echarts.init(canvas, null, {
    width: width,
    height: height,
    devicePixelRatio: dpr
  });
  this.setData({
    chart: chart
  });
  const option = {
    /* ...填写具体配置项 */
  };
  chart.setOption(option);
}
function updateChart() {
  const option = {
    /* ...填写修改后的配置项 */
  };
  this.setData({
    ec: {
      onInit: initChart.bind(this),
      lazyLoad: true,
      option: option
    }
  });
}

如上述代码,我们首先声明了一个chart变量,用于保存图表实例。在onInit方法中,除了常规配置项外,还通过setData方法将创建好的图表实例传给了this.data,这样我们就可以随时获取chart实例进行操作。

在updateChart函数中,通过setData方法将新的option对象传递给了ec-canvas组件,同时在onInit方法中获取最新的option,并进行了重新绘制操作。

注意:在使用这种方式时,需要将 lazyLoad 属性设置为 true,这样 ec-canvas 组件才会调用 onInit 方法,进行更新操作。

综上,通过修改 option 参数,或者重新调用 onInit 方法,我们就可以更新图表的参数并刷新画面了。不同的修改方式,可以根据具体场景进行选择。


ec-canvas 在小程序上的使用(三)https://developer.aliyun.com/article/1426114

相关文章
|
数据可视化
echarts图表坐标轴数据标签添加下划线
echarts图表坐标轴数据标签添加下划线
425 0
|
小程序
小程序wx.switchTab的跳转传参问题
小程序wx.switchTab的跳转传参问题
453 0
|
小程序 容器
【微信小程序】-- WXML 模板语法 - 条件渲染 -- wx:if & hidden (十一)
【微信小程序】-- WXML 模板语法 - 条件渲染 -- wx:if & hidden (十一)
|
小程序 计算机视觉
UNIAPP微信小程序使用Echarts
UNIAPP微信小程序使用Echarts
3594 0
|
JSON 小程序 数据可视化
ec-canvas 在小程序上的使用(一)
ec-canvas 在小程序上的使用
|
小程序 JavaScript
微信小程序使用echarts图表(ec-canvas)
这篇文章介绍了在微信小程序中使用`ec-canvas`集成echarts图表的方法,包括解决加载时报错的问题、配置图表组件、以及在小程序页面中引入和使用这些图表组件的步骤。
1962 1
微信小程序使用echarts图表(ec-canvas)
|
小程序 前端开发 JavaScript
微信小程序图表制作利器:ECharts组件的使用与技巧
微信小程序图表制作利器:ECharts组件的使用与技巧
1228 1
|
XML 小程序 JavaScript
|
缓存 小程序 前端开发
ec-canvas 在小程序上的使用(三)
ec-canvas 在小程序上的使用
|
前端开发
翻转视角:CSS让卡片设计在网页上活起来!
翻转视角:CSS让卡片设计在网页上活起来!