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

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

關(guān)于微信小程序中如何實現(xiàn)數(shù)據(jù)可視化echarts動態(tài)渲染,去除文字陰影,解決圖標(biāo)模糊問題

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

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

基礎(chǔ)使用

首先在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的父級元素設(shè)置高度

.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à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) {
  },
})

echarts中,配置項與echarts文檔中的配置項相同,按照官網(wǎng)的配置項進行開發(fā)即可。
配置項手冊:https://echarts.apache.org/zh/option.html


動態(tài)渲染echarts

我們會根據(jù)業(yè)務(wù)場景,傳入不同的數(shù)據(jù)進行動態(tài)渲染echarts,那么在這里charts實例就必須配置為全局

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

當(dāng)你的數(shù)據(jù)變化后,重新渲染echarts

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

解決真機文字陰影

options配置中添加

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

解決圖標(biāo)模糊問題

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

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è)配像素比進行渲染

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



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