關于微信小程序中如何實現數據可視化echarts動態渲染,去除文字陰影,解決圖標模糊問題
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
移動端設備中,難免會涉及到數據的可視化展示、數據統計等等,本篇主要講解原生微信小程序中嵌入 基礎使用首先在 { "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 // 圖標寬 }); canvas.setChart(chart); // 此為配置項。配置圖表展現樣式與數據 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({ /** * 頁面的初始數據 */ data: { // 此處的ec名稱與wxml結構中命名保持一致 ec: { // 使用 onInit 方法定義 onInit: initChart } }, /** * 生命周期函數--監聽頁面加載 */ onLoad(options) { }, }) 在 動態渲染echarts我們會根據業務場景,傳入不同的數據進行動態渲染 var chart = null; // 重要-保存chart為全局實例 // initChart必須為全局函數 function initChart(canvas) { chart = echarts.init(canvas, null, { height: 250, }); canvas.setChart(chart); return chart; } 當你的數據變化后,重新渲染 data: { ec: { onInit: initChart } }, getData() { return { // 你配置的的options數據...... }; }, getCharts() { setTimeout(() => { // 由于chart被你定義為全局,所以這里可以直接獲取 // 通過setOption設置options數據,刷新圖標 chart.setOption(this.getData(), true) }, 1500) } 解決真機文字陰影在 tooltip: { textStyle: { textShadowBlur: 10, // 去掉文字陰影 textShadowColor: 'transparent', // 去掉文字陰影 }, }, 解決圖標模糊問題在真機中 function initChart(canvas) { // 獲取設備像素比 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 // 設置初始化像素比 }); canvas.setChart(chart); return chart; } 此時圖表的像素就會按照設配像素比進行渲染 另外 該文章在 2023/11/27 16:40:47 編輯過 |
關鍵字查詢
相關文章
正在查詢... |