狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

關于微信小程序中如何實現數據可視化echarts動態渲染,去除文字陰影,解決圖標模糊問題

freeflydom
2023年11月27日 16:40 本文熱度 1079

移動端設備中,難免會涉及到數據的可視化展示、數據統計等等,本篇主要講解原生微信小程序中嵌入echarts并進行動態渲染,實現數據可視化功能。

基礎使用

首先在GitHub上下載echarts
地址:https://github.com/ecomfe/echarts-for-weixin/tree/master
下載項目
解壓壓縮包,將ec-canvas文件夾放到我們的項目中
在需要使用的頁面引入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>

先給echarts的父級元素設置高度

.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中,配置項與echarts文檔中的配置項相同,按照官網的配置項進行開發即可。
配置項手冊:https://echarts.apache.org/zh/option.html


動態渲染echarts

我們會根據業務場景,傳入不同的數據進行動態渲染echarts,那么在這里charts實例就必須配置為全局

var chart = null; // 重要-保存chart為全局實例
// initChart必須為全局函數
function initChart(canvas) {
  chart = echarts.init(canvas, null, {    
  height: 250,
  });
  canvas.setChart(chart);  return chart;
}

當你的數據變化后,重新渲染echarts

 data: {    
 ec: {      
 onInit: initChart
    }
  },  
  getData() {    
  return { // 你配置的的options數據...... };
  },  
  getCharts() {      
  setTimeout(() => {        // 由于chart被你定義為全局,所以這里可以直接獲取
        // 通過setOption設置options數據,刷新圖標
        chart.setOption(this.getData(), true)
      }, 1500)
    }

解決真機文字陰影

options配置中添加

   tooltip: {     
   textStyle: {       
   textShadowBlur: 10, // 去掉文字陰影
       textShadowColor: 'transparent', // 去掉文字陰影
     },
   },

解決圖標模糊問題

在真機中echarts可能會出現分辨率低,圖形模糊的情況,此時我們需要獲取設備像素比給echarts做初始化設置。
微信小程序獲取設備信息:wx.getSystemInfo

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;
}

此時圖表的像素就會按照設配像素比進行渲染

另外
1、你可以將echarts封裝成組件,通過observers監聽數據的變化來實現echarts的動態渲染。
2、在渲染層面,你可以將 legendlabel調色盤、 series拆開,這樣可以方便你更好的管理數據。
3、微信小程序有分包限制,在這里我做的是echarts包的直接下載,可能會占一些體積,你可以在echarts官網上選擇在線訂制,只下載你需要的圖表解來減少包的體積,官網:在線訂制



該文章在 2023/11/27 16:40:47 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved