小程序如何使用 ECharts 绘制雷达图

文章目录​​​​​​​

前言

一、微信小程序如何接入 ECharts?​​​​​​​

二、使用步骤

1.引入库

2.ECharts绘制雷达图

总结


前言

众所周知,在H5平台绘制图表首选 ECharts 库。它具有以下特色:丰富的可视化类型、多种数据无需转换直接使用、移动端优化、动态数据、绚丽的特效、GL实现三维可视化。这里放上 5分钟上手ECharts 官方文档入口,感兴趣的朋友们可以一睹为先。

不过本篇文章Joe大叔将要带领大家一步步的在微信小程序中使用 ECharts 成功绘制出雷达图,接下来我们就开始吧!


一、微信小程序如何接入 ECharts?​​​​​​​

这里要区分两种情况:一是原生微信小程序开发,这里Joe大叔推荐大家直接访问 在微信小程序中使用ECharts,因为是官方文档,只需要按照操作步骤即可。二是 uni-app 开发微信小程序,下面我将展示使用 uni-app项目 绘制雷达图。

二、使用步骤

1.引入库

1.1 使用 HBuilder X 新建 uni-app 项目,并选择 Hello uni-app 模版。

 项目创建完毕,在 components 目录下找到 mpvue-echarts 目录。

接着创建一个新项目,命名为 uni-app使用ECharts绘制雷达图,并把 mpvue-echarts 目录拷贝到创建的新项目中,目录结构如图所示即可。

1.2 前往 Echarts 官网在线构建所需图标、坐标系、组件进行打包下载,由于本文是绘制雷达图,所以只需勾选雷达图即可。

点击下载按钮,打包完成后自动完成下载 js 文件。

新建 echarts 目录,把下载好的 echarts.min.js 文件拖入项目中。

 

1.3 在 index.vue 里引入 js 文件和 mpvueEcharts 组件,并且进行组件注册。

<script>
	import * as echarts from '../../components/echarts/echarts.min.js'
	import mpvueEcharts from '../../components/mpvue-echarts/src/echarts.vue'
	
	export default {
		components: {
			mpvueEcharts
		},
		
		data() {
			return {
				title: 'Hello'
			}
		},
		onLoad() {

		},
		methods: {

		}
	}
</script>

至此,我们已经完成了 uni-app 项目中引入 ECharts 插件的步骤,接下来开始使用插件绘制雷达图。

2.ECharts绘制雷达图

 2.1 给雷达图创建一个父容器 charts-box,并设置宽高

<template>
	<view class="content">
		
		<!-- 雷达图 -->
		<view class="charts-box">
			<mpvue-echarts @onInit="lineInit" canvasId="radar" ref="lineChart" />
		</view>
		
	</view>
</template>

<style>
	.content {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
	}
	
	/* 雷达图父容器 */
	.charts-box {
	  width: 670rpx;
	  height:439rpx;
	  padding: 20rpx 0 0 0;
	}
</style>

这里的 @onInit 是 mpvue-echarts/src/echarts.vue 里的 echarts.vue 初始化 canvas 后的回调,我们在这里进行 ECharts 的数据提供和图形绘制。

methods: {
			// 绘制 ECharts
			lineInit(e) {
				let {
					width,
					height
				} = e;
				let canvas = this.$refs.lineChart.canvas
				echarts.setCanvasCreator(() => canvas);
				this.lineChart = echarts.init(canvas, null, {
					width: width,
					height: height
				})
				canvas.setChart(this.lineChart)
				this.lineChart.setOption(this.chartData)
				this.$refs.lineChart.setChart(this.lineChart)
			},
		}

2.2 配置 ECharts 数据,这里Joe大叔已经准备了一个雷达图的配置数据,直接展现给大家。

data() {
			return {
				// ECharts 雷达图数据
				chartData: {
					"backgroundColor": "#FFFFFF",
					"radar": {
						"axisLine": {
							"lineStyle": {
								"color": "#E4EEFF",
								"width": 1
							}
						},
						"indicator": [{
								"max": 10,
								"name": "研发能力"
							},
							{
								"max": 10,
								"name": "综合能力"
							},
							{
								"max": 10,
								"name": "配套实力"
							},
							{
								"max": 10,
								"name": "成本控制能力"
							},
							{
								"max": 10,
								"name": "生产能力"
							}
						],
						"name": {
							"color": "#333333",
							"fontSize": 13
						},
						"splitArea": {
							"areaStyle": {
								"color": [
									"rgba(63,118,246,0.08)"
								]
							}
						},
						"splitLine": {
							"lineStyle": {
								"color": [
									"#EAF1FC"
								],
								"width": 1
							}
						},
						"splitNumber": 0
					},
					"series": [{
						"areaStyle": {
							"color": "#3F76F6",
							"opacity": 1,
							"shadowBlur": 5,
							"shadowColor": "rgba(0, 33, 109, 0.16)",
							"shadowOffsetY": 2
						},
						"data": [{
							"symbol": "none",
							"value": [
								9.38,
								9.75,
								9,
								7.88,
								8.88
							]
						}],
						"lineStyle": {
							"width": 0
						},
						"type": "radar"
					}],
					"xAxis": {
						"show": false
					},
					"yAxis": {
						"show": false
					}
				},
			}
		},

在这里简要说明一下几个主要配置字段,更多详细内容可以直接访问 ECharts 配置项进行查阅。

radar.axisLine:坐标轴轴线相关设置。

radar.name:雷达图每个指示器名称的配置项。

radar.splitArea:坐标轴在 grid 区域中的分割区域,默认不显示。

radar.splitLine:坐标轴在 grid 区域中的分隔线。

radar.splitNumber:指示器轴的分割段数。(如果设为0,就只会展示一层雷达图背景)

seris-radar.data.symbol:雷达图的单个数据标记的图形。(如果设为none,就不会展示单个数据项的标记图形,默认是circle小圆点)

seris-radar.data.value:雷达图的单个数据的数值。(雷达图最终渲染效果就是由这个值来确定的,radar.indicator 里的 max 是 value 的最大取值,这里需要注意一下)

2.3 编译项目,进行雷达图绘制

看完本文、跟随步骤后,一个漂亮的雷达图就呈现在眼前了,大家是不是也都跃跃欲试了呢?ECharts 示例提供了各式各样漂亮的图表,足以满足各项要求,可以依据兴趣分别尝试下各个图表。


总结

在本篇文章中,Joe大叔和大家一起构建项目、引入 ECharts 插件、使用插件绘制图表,最终完成了达到预期效果的雷达图。当然,微信小程序在使用 ECharts 时,也存在 canvas 层级过高的问题。处理这个问题有两种方案:一是使用 cover-view、cover-image 覆盖在图标上面;二是使用 canvas 生成图片(uni.canvasToTempFilePath(object, component),然后把图片展示出来,并且对 canvas 组件使用 position: absolute;left: -670rpx;right: -440rpx; 的布局方式将其隐藏在屏幕外。

最后很感谢能看到文末的朋友们,我们下期再见!

GitHub项目地址​​​​​​​

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
在Uniapp中使用echarts雷达图,你可以按照以下步骤进行操作: 1. 首先,你需要下载echarts的js样式文件。你可以在echarts官网的构建器页面(https://echarts.apache.org/zh/builder.html)选择需要的图表样式和组件,并下载对应的js文件。将下载的js文件放入Uniapp项目的components文件夹中。 2. 在需要使用雷达图的页面中,引入echarts和mpvue-echarts组件。在script标签中,使用import语句引入echarts和mpvue-echarts的库文件。然后在组件的data中定义echarts对象。接下来,将mpvue-echarts组件注册为页面的局部组件,并在methods中编写renderMap方法来渲染雷达图。 3. 在template中,使用mpvue-echarts标签来显示雷达图。设置mpvue-echarts的id属性和canvasId属性,并通过@onInit监听渲染图表的事件。 4. 在methods中的renderMap方法中,获取canvas的相关信息,通过echarts.setCanvasCreator(() => canvas)来设置echarts的canvas创建器。然后使用echarts.init方法初始化echarts实例,并将chart对象与canvas进行关联。在echarts初始化完成后,编写雷达图的配置代码,并使用chart.setOption方法来设置雷达图的配置。最后,使用this.$refs.mapChart.setChart(chart)来将chart对象传递给mpvue-echarts组件。 这样,你就可以在Uniapp中成功使用echarts雷达图了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [uniapp-使用echarts中的复杂图表(雷达图)](https://blog.csdn.net/zjingru/article/details/121357732)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [uCharts高性能跨平台图表-其他](https://download.csdn.net/download/weixin_38711643/19575488)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NickZZJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值