uniapp_微信小程序_echarts_动态折线图

##uniapp_微信小程序_echarts_动态折线图

用来总结和学习,便于自己查找

文章目录

              一、为什么使用echarts折线图?
          1.1 动态折线图echarts效果?
              二、怎么导入echarts折线图?
          2.1 如何插件市场导入uniapp_echarts?
          2.2 导入之后的引用和代码?

              三、动态折线图的实现?
          3.1 重要代码
              四、echarts.js 太大怎么解决?

一、为什么使用echarts折线图?
使用了秋云rcharts,优点体积小但是动态实现的时候会刷新整个折线图还有就是x轴的字体倾斜的时候还会挨着x轴,体验不好,所以使用的echarts的折线图。

1.1 动态折线图echarts效果?

​​在这里插入图片描述

二、怎么导入echarts折线图?

2.1 如何插件市场导入uniapp_echarts

echarts-for-wx

2.1.1 上面就是插件地址,要是原生小程序就使用截图另一个

在这里插入图片描述

2.1.2 导入你的项目即可

在这里插入图片描述

2.2 导入之后的引用和代码?

导入之后有以下文件

在这里插入图片描述

2.2.1 在你主页写以下代码(完整版直接就能实现动态效果)
<template>
	<view>
		<uni-ec-canvas class="uni-ec-canvas" id="uni-ec-canvas" ref="canvas" canvas-id="uni-ec-canvas" :ec="ec">
		</uni-ec-canvas>
	</view>
</template>

<script>
	import uniEcCanvas from '@/components/uni-ec-canvas/uni-ec-canvas.vue'
	import * as echarts from '@/components/uni-ec-canvas/echarts'
	let chart = null
	export default {
   
		components: {
   
			uniEcCanvas
		},
		data() {
   
			return {
   
				ec: {
   
					lazyLoad: true
				},
				option: {
   
					tooltip: {
   
						trigger: 'axis',
						axisPointer: {
   
							type: 'line'
						}
					},
					grid: {
   
						left: '40',
						right: '40',
						bottom: '3%',
						containLabel: true
					},
					xAxis: {
   
						type: 'category',
						axisTick: {
   
							show: false,
						}
### 如何在 UniApp 微信小程序中用 ECharts 实现折线图 要在 UniApp微信小程序环境中实现基于 ECharts折线图功能,可以按照以下方法操作: #### 1. 下载并引入必要的依赖库 首先需要下载 `echarts` 和其适配版本的组件。可以通过 npm 安装 `echarts` 及其针对小程序优化的插件 `mpvue-echarts` 或者直接使用官方推荐的小程序专用版本。 安装命令如下: ```bash npm install echarts mpvue-echarts ``` 如果项目中有 `package-lock.json` 文件,则可以在其中定位到 `mpvue-echarts` 并将其本地化存储至项目的指定目录下[^4]。 对于更轻量化的场景,可以直接从 GitHub 获取专门用于微信小程序ECharts 版本[^1]: https://github.com/ecomfe/echarts-for-weixin 将该仓库中的必要文件复制到项目内的合适路径(如 `/components/echarts/`),并通过模块导入方式加载它[^2]。 #### 2. 配置 JSON 文件支持自定义组件 为了使微信小程序能够识别新增加的图表渲染组件,在页面对应的 `.json` 文件里声明所使用的外部组件名称及其相对位置[^3]: ```json { "usingComponents": { "ec-canvas": "/components/ec-canvas/ec-canvas" } } ``` 这里假设已把上述提到的 `ec-canvas` 组件放置于根级 components 路径之下;实际部署时需依据个人项目结构调整具体地址。 #### 3. 设置 CSS 样式确保正常展示 由于默认情况下容器大小可能不足以容纳完整的图形结构,因此必须通过样式表设定固定的宽高比例来满足绘制需求: ```css /* app.wxss */ .ec-canvas { width: 100%; height: 30%; /* 这里的高度可以根据实际情况调整 */ } .chart_one { width: 750rpx; height: 600rpx; } ``` 以上代码片段设置了两个不同层次上的尺寸参数——一个是作用在整个画布区域上的一般性规则,另一个则是特定实例专属的选择器类名`.chart_one`. #### 4. HTML 结构编写 最后一步是在 WXML 中构建起承载最终效果的实际 DOM 元素树形结构。注意要嵌套一层额外包裹层以便更好地控制布局行为: ```html <view class="chart_one"> <ec-canvas id="myChartDomLine" canvas-id="myCanvasIdForLine" ec="{{ ec }}"></ec-canvas> </view> ``` 此处的关键点在于绑定了一个名为 `ec` 的数据属性对象给 `<ec-canvas>` 成分标签作为初始化选项传递过去。 #### 5. 初始化逻辑处理 接着就是在 JavaScript 层面完成具体的业务流程编码工作了。下面给出一段简单的例子演示如何创建一条基本样式的直线型趋势曲线图: ```javascript export default { data() { return { ec: {} }; }, onLoad() { this.initEc(); }, methods: { initEc() { const chartData = [ ['Mon', 18], ['Tue', 29], ['Wed', 33], ['Thu', 31], ['Fri', 44], ['Sat', 13], ['Sun', 38] ]; let option = { xAxis: { type: 'category', boundaryGap: false, data: chartData.map(item => item[0]) }, yAxis: { type: 'value' }, series: [{ name:'销量', type:'line', smooth:true, symbolSize:8, showSymbol:false, lineStyle:{ color:'#FFA500' }, areaStyle:{}, data:chartData.map(item=>item[1]), }] }; setTimeout(() => { this.ec = { lazyLoad: true, // 延迟加载 onInit: (canvas, width, height,dpr) => { const ctx = canvas.getContext('2d'); const myChart = echarts.init(canvas, null, {width,height,dpr}); myChart.setOption(option); return myChart; } }; }, 10); } } }; ``` 此脚本实现了动态生成一组模拟销售统计数据,并利用这些数值描绘出相应的视觉表现形式。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值