小程序中使用echarts,案例一:实现蜘蛛网(雷达图)

这篇具有很好参考价值的文章主要介绍了小程序中使用echarts,案例一:实现蜘蛛网(雷达图)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

echarts-for-weixin 项目提供了一个小程序组件,用这种方式可以方便地使用 ECharts。

下载

echarts-for-weixin ec-canvas
如果你想使用最新版本的echarts可以将 ec-canvas 目录下的 echarts.js 替换为最新版的 ECharts。如果希望减小包体积大小,可以使用自定义构建生成并替换 echarts.js。需要注意的是新版的 ECharts 微信小程序支持微信 Canvas 2d,当用户的基础库版本 >= 2.9.0 且没有设置 force-use-old-canvas=“true” 的情况下,使用新的 Canvas 2d(默认),使用新的 Canvas 2d 可以提升渲染性能,解决非同层渲染问题,强烈建议开启。

使用

在项目根目录下创建components文件夹,将下载的ec-canvas放在components文件夹中。

详情可参考echart官网

使用ec-canvas实现蜘蛛网案例:

在components中创建radar组件

<!--components/radar/radar.wxml-->
<view class="container">
  <ec-canvas class="ec-canvas" id="mychart-dom-radar" isUseNewCanvas="{{ true }}" canvas-id="mychart-radar" ec="{{ ec }}"></ec-canvas>
</view>
/* components/radar/radar.wxss */
.container,.ec-canvas{
  width: 100%;
  height: 100%;
}
import * as echarts from '../ec-canvas/echarts';

Component({
  /**
   * 组件的属性列表
   */
  properties: {
    data: {
      type: Array,
      value: []
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    ec: {
      // onInit: initChart,
      lazyLoad: true, // 懒加载
    }
  },

  lifetimes: {
    attached: function() {
      // 在组件实例进入页面节点树时执行
      this.initchart(this.data.data)
    },
    detached: function() {
      // 在组件实例被从页面节点树移除时执行
    },
  },
  // 以下是旧式的定义方式,可以保持对 <2.2.3 版本基础库的兼容
  attached: function() {
    // 在组件实例进入页面节点树时执行
    this.initchart(this.data.data)
  },
  detached: function() {
    // 在组件实例被从页面节点树移除时执行
  },
  /**
   * 数据监听器
   */
  observers: {
    'data': function(val){
      this.initchart(val)
    }
  },
  /**
   * 组件的方法列表
   */
  methods: {
    loadchart(data){
      // 绑定组件(ec-canvas标签的id)
      let ec_canvas = this.selectComponent('#mychart-dom-radar');
      ec_canvas.init((canvas,width,height,dpr)=>{
        const chart = echarts.init(canvas, null, {
          width: width,
          height: height,
          devicePixelRatio: dpr // 解决模糊显示的问题
        })
        // echart表格的内容配置
        var option = {
          backgroundColor: "#ffffff",
          xAxis: {
            show: false
          },
          yAxis: {
            show: false
          },
          radar: {
            // 雷达图每个指示器名称的配置项。
            axisName: {
              color: 'rgba(102, 102, 102, 1)',
              fontSize: 12,
              fontFamily: 'PingFangSC-Regular, PingFang SC',
              fontWeight: 400,
            },
            // 指示器名称和指示器轴的距离
            nameGap: 8,
            // 指示器轴的分割段数
            splitNumber: 4,
            // 坐标轴轴线
            axisLine: {
              lineStyle: {
                color: 'rgba(234, 234, 234, 1)',
                width: 1.5
              }
            },
            splitLine: {
              lineStyle: {
                color: 'rgba(234, 234, 234, 1)',
                width: 1.5
              }
            },
            splitArea: {
              areaStyle: {
                color: ['rgba(255, 255, 255, 1)', 'rgba(255, 255, 255, 1)']
              }
            },
            // 雷达器的指示器
            indicator: [{
              name: '指示器1',
              max: 4,
            },
            {
              name: '指示器2',
              max: 4,
            },
            {
              name: '指示器3',
              max: 4,
            },
            {
              name: '指示器4',
              max: 4,
            },
            {
              name: '指示器5',
              max: 4,
            },
            {
              name: '指示器6',
              max: 4,
            }
            ]
          },
          series: [{
            type: 'radar',
            symbol: 'none',
            data: [
              {
                value: data,
                lineStyle: {
                  color: "rgba(209, 189, 128, 1)",
                  width: 2,
                },
                areaStyle: {
                  color: "rgba(209, 189, 128, 0.3)"
                }
              }
            ]
          }]
        };
        chart.setOption(option);
        return chart;
      })
    },
    initchart(data){
      // 传递后台数据到图表中,进行懒加载图表
      this.loadchart(data);
    },
  }
})
{
  "component": true,
  "usingComponents": {
    "ec-canvas": "/components/ec-canvas/ec-canvas"
  }
}

在页面中使用蜘蛛网组件

<scroll-view style="height: 500px" scroll-y>
  <view class="radar">
    <my-radar data="{{radarData}}"></my-radar>
  </view>
</scroll-view>
/* pages/zxm-radar/index.wxss */
.radar{
  width: 570rpx;
  height: 570rpx;
}
// pages/zxm-radar/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    radarData: [1, 2, 4, 3, 2, 1]
  },

})
{
  "usingComponents": {
    "my-radar": "/components/radar/radar"
  }
}

在此过程中发现当页面中有滚动时,虽然使用了2d渲染,但在模拟器中图层会在上层,手机上在同层,目前没有想到较好的方式解决,欢迎小伙伴们留言交流探讨,至此实现蜘蛛网就结束了,当然你在项目中还是需要根据实际情形来处理。
小程序中使用echarts,案例一:实现蜘蛛网(雷达图),小程序,小程序,echarts,前端文章来源地址https://www.toymoban.com/news/detail-775478.html

到了这里,关于小程序中使用echarts,案例一:实现蜘蛛网(雷达图)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 小程序中使用echarts实现带边框雷达图

    小程序中怎么使用echarts的流程在这边文章,点击去观看 我们项目需要实现一个带边框的雷达图,看了API之后没有发现怎么去实现这个边框,所以想到了画两个雷达图来实现这个边框,具体效果如上,代码如下 通过第二个雷达图跟第一个雷达图同心圆,半径比实际展示的大一

    2024年01月21日
    浏览(25)
  • 微信小程序使用echarts实现条形统计图功能

    使用echarts实现在微信小程序中统计图的功能,其实很简单,只需要简单的两步就可以实现啦,具体思路如下: 引入echarts组件 调用相应的函数方法 由于需要引入echarts组件,代码行数较多,无法在此粘贴,需要的友友们可以进我的主页,进行免费的资源下载,具体的实现结果

    2024年04月28日
    浏览(25)
  • echarts 中的世界地图的使用案例

    1.在main.js中或者在单个文件中引用echarts,将json文件放入public中引用。(json文件在我的资源中可下载)   2.在mounted生命周期内注册世界地图。   3.在$nextTick方法中调用渲染世界地图方法。   效果如下:    

    2024年02月13日
    浏览(30)
  • 微信小程序使用Echarts-for-weixin实现图表动态更新数据、懒加载(干货满满!!!)

    后端开发入坑全栈之 微信小程序 + Echarts图表 上需求,如下: Apache Echarts是一个基于JavaScript的开源可视化图表库,用于创建各种类型图表,常用图表类型有柱状图、折线图、饼状图、散点图等等。废话不多说,直接上干货!耶✌ 1、下载Echart-for-weixin项目 echart-for-weixin 项目提

    2024年02月04日
    浏览(30)
  • Java 基于 Apache ECharts 实现:柱状图、折线图、环形图等案例

    效果图 源代码 复用 如果想复用上面的代码,只需要把xAxis和series的data改下就行。 效果图 源代码 复用 如果想复用上面的代码,只需要把xAxis和series改下就行。 效果图 源代码 复用 如果想复用上面的代码,只需要把tooltip的data和series的data改下就行。 效果图 源代码 复用 如果

    2024年02月10日
    浏览(28)
  • uniapp小程序使用原生echarts非第三方封装 小程序使用echarts 图表 可视化

    前言:之前小程序做的图表,当时没找到太多使用echarts的教程,大多都是二次封装的。连uniapp都是推荐别人二次封装的图表,然后用了之后呢,发现不是自己想要的效果(也许是自己对别人二次封装的代码不够熟悉吧 ),然后干脆摸索下uniapp引入echarts图表(非他人封装的)

    2024年02月09日
    浏览(40)
  • 小程序使用echarts

    参考文档:echarts官网、echarts-for-weixin 第一步引入组件库,可直接从echarts-for-weixin下载,也可以从自定义配置自定义生成,这里我们就不贴了 组件库引入好后,就是页面引用啦,废话不多说,直接上代码 index.js: index.wxml: index.wxss: 此方法也可封装为一个页面生成多个图表 欢

    2024年02月14日
    浏览(26)
  • 微信小程序使用echarts

    前期准备 : 1.echarts提供了一个微信小程序原生组件,下载地址:ecomfe/echarts-for-weixin ,拿到 ec-canvas 文件夹 2. 到 echarts官网 在线定制组件包 注意:版本一定要和 ec-canvas 相同 3.将下载的 echarts.min.js 替换掉原本的 echarts.js ,小程序文件过大影响发布 4.引入 ec-canvas.json ec-canvas

    2023年04月23日
    浏览(36)
  • 微信小程序+echart实现点亮旅游地图

    最近看抖音有个很火的特效就是点亮地图,去过哪些地方,于是乎自己也想做一个,结合自己之前做的以家庭为单位的小程序,可以考虑做一个家庭一起点亮地图的功能。 效果图 1,首先就是得去下微信小程序适配的echarts-for-weixin,这个网上很多,就不贴链接了。 下好后把

    2024年02月02日
    浏览(30)
  • 小程序使用echarts图表-雷达图

    本文介绍下小程序中如何使用echarts 如果是通过npm安装,这样是全部安装的,体积有点大 我这边是使用echarts中的一个组件来实现的,下边是具体流程,实际效果是没有外边的红色边框的,加红色边框的效果是这篇说明 1.echarts光网有提到一个小程序组件 echarts-for-weixin点击下载

    2024年01月21日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包