關(guān)于微信小程序中如何實(shí)現(xiàn)數(shù)據(jù)可視化echarts動(dòng)態(tài)渲染,去除文字陰影,解決圖標(biāo)模糊問題
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
移動(dòng)端設(shè)備中,難免會(huì)涉及到數(shù)據(jù)的可視化展示、數(shù)據(jù)統(tǒng)計(jì)等等,本篇主要講解原生微信小程序中嵌入 基礎(chǔ)使用首先在 { "usingComponents": { "ec-canvas": "/ec-canvas/ec-canvas" } } 在頁面中使用 <view class="line_chart"> <ec-canvas class="chart" id="charts" canvas-id="mychart-line" ec="{{ ec }}"></ec-canvas></view> 先給 .line_chart { width: 100%; height: 550rpx; background: #fff; } 然后就可以使用了 // 引入 echarts 文件,這里路徑一定要正確,就是ec-canvas -> echart.jsimport * as echarts from '../../../ec-canvas/echarts';// 定義 initChart 方法 function initChart(canvas) { const chart = echarts.init(canvas, null, { height: 250, // 圖表高 // width: 100 // 圖標(biāo)寬 }); canvas.setChart(chart); // 此為配置項(xiàng)。配置圖表展現(xiàn)樣式與數(shù)據(jù) var option = { xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] }, yAxis: { type: 'value' }, series: [ { data: [150, 230, 224, 218, 135, 147, 260], type: 'line' } ] }; chart.setOption(option); return chart; }Page({ /** * 頁面的初始數(shù)據(jù) */ data: { // 此處的ec名稱與wxml結(jié)構(gòu)中命名保持一致 ec: { // 使用 onInit 方法定義 onInit: initChart } }, /** * 生命周期函數(shù)--監(jiān)聽頁面加載 */ onLoad(options) { }, }) 在 動(dòng)態(tài)渲染echarts我們會(huì)根據(jù)業(yè)務(wù)場景,傳入不同的數(shù)據(jù)進(jìn)行動(dòng)態(tài)渲染 var chart = null; // 重要-保存chart為全局實(shí)例 // initChart必須為全局函數(shù) function initChart(canvas) { chart = echarts.init(canvas, null, { height: 250, }); canvas.setChart(chart); return chart; } 當(dāng)你的數(shù)據(jù)變化后,重新渲染 data: { ec: { onInit: initChart } }, getData() { return { // 你配置的的options數(shù)據(jù)...... }; }, getCharts() { setTimeout(() => { // 由于chart被你定義為全局,所以這里可以直接獲取 // 通過setOption設(shè)置options數(shù)據(jù),刷新圖標(biāo) chart.setOption(this.getData(), true) }, 1500) } 解決真機(jī)文字陰影在 tooltip: { textStyle: { textShadowBlur: 10, // 去掉文字陰影 textShadowColor: 'transparent', // 去掉文字陰影 }, }, 解決圖標(biāo)模糊問題在真機(jī)中 function initChart(canvas) { // 獲取設(shè)備像素比 const getPixelRatio = () => { let pixelRatio = 0 wx.getSystemInfo({ success: function (res) { pixelRatio = res.pixelRatio }, fail: function () { pixelRatio = 0 } }) return pixelRatio } var dpr = getPixelRatio(); // 像素比 chart = echarts.init(canvas, null, { height: 250, devicePixelRatio: dpr // 設(shè)置初始化像素比 }); canvas.setChart(chart); return chart; } 此時(shí)圖表的像素就會(huì)按照設(shè)配像素比進(jìn)行渲染 另外 該文章在 2023/11/27 16:40:47 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |