日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

canvas js 绘图插件_[开盖即食]小程序图表插件eCharts实战

發布時間:2025/3/20 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 canvas js 绘图插件_[开盖即食]小程序图表插件eCharts实战 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

H5時代用來做圖表的插件有很多比如:ECharts、Bizcharts、JSCharts等,而這次的小程序本人選用了?ECharts?作為圖表組件。

1、選擇原因主要有3點:

  • 官方某度在持續維護這個插件

  • 官方推出了直接適配小程序的版本,且有demo,開蓋即食,不用遷移

  • 簡單實用,覆蓋面廣且可通過配置控制包的大小,小程序畢竟大小有限制~

eCharts來自BAT中的B前端團隊,對應的小程序版本為:echarts-for-weixin

官網地址:

https://echarts.apache.org/

github地址為:

https://github.com/ecomfe/echarts-for-weixin

小程序demo地址為:

https://github.com/ecomfe/echarts-examples

2、用法

(1)官方教程:

index.json?配置如下:

{
??"usingComponents":?{
????"ec-canvas":?"../../ec-canvas/ec-canvas"
??}
}

這一配置的作用是,允許我們在?pages/bar/index.wxml?中使用??組件。注意路徑的相對位置要寫對,如果目錄結構和本例相同,就應該像上面這樣配置。

index.wxml?中創建了一個??組件:

<view?class="container">
??<ec-canvas?id="mychart-dom-bar"?canvas-id="mychart-bar"?ec="{{?ec?}}">ec-canvas>
view>

其中?ec?是一個我們在?index.js?中定義的對象,它使得圖表能夠在頁面加載后被初始化并設置。

index.js?配置:

function?initChart(canvas,?width,?height,?dpr)?{
??const?chart?=?echarts.init(canvas,?null,?{
????width:?width,
????height:?height,
????devicePixelRatio:?dpr?//?像素
??});
??canvas.setChart(chart);

??var?option?=?{
????...
??};
??chart.setOption(option);
??return?chart;
}

Page({
??data:?{
????ec:?{
??????onInit:?initChart
????}
??}
});

這對于所有 ECharts 圖表都是通用的,用戶只需要修改上面?option?的內容,即可改變圖表。option?的使用方法參見 ECharts 配置項文檔。

如何延遲加載圖表?

參見?pages/lazyLoad?的例子,可以在獲取數據后再初始化數據。

如何在一個頁面中加載多個圖表?

參見?pages/multiCharts?的例子。

如何使用 Tooltip?

目前,本項目已支持 ECharts Tooltip,但是由于 ECharts 相關功能尚未發版,因此需要使用當前本項目中?ec-canvas/echarts.js,這個文件包含了可以在微信中使用 Tooltip 的相關代碼。目前在 ECharts 官網下載的?echarts.js?還不能直接替換使用,等 ECharts 正式發版后即可。

具體使用方法和 ECharts 相同,例子參見?pages/line/index.js。

如何保存為圖片?

參見?pages/saveCanvas?的例子。

(2)本人實戰操作:

效果圖import?*?as?echarts?from?'../ec-canvas/echarts';
const?app?=?getApp();
let?chart;

function?initChart(canvas,?width,?height,?dpr)?{
??chart?=?echarts.init(canvas,?null,?{
????width:?width,
????height:?height,
????devicePixelRatio:?dpr?//?new
??});
??canvas.setChart(chart);

??chart.setOption(option);
??return?chart;
}
var?option?=?{
??title:?{
????text:?'智酷君?echarts?切換效果測試',
????left:?'center'
??},
??tooltip:?{
??????trigger:?'item',
??????formatter:?'{a}?
{b}:?{c}?(ozvdkddzhkzd%)'
??},
??legend:?{
??????orient:?'vertical',
??????left:?10,
??????data:?['AAA',?'BBB',?'CCC',?'DDD',?'EEE']
??},
??series:?[
??????{
??????????name:?'訪問來源',
??????????type:?'pie',
??????????radius:?['50%',?'70%'],
??????????avoidLabelOverlap:?false,
??????????label:?{
??????????????show:?false,
??????????????position:?'center'
??????????},
??????????emphasis:?{
??????????????label:?{
??????????????????show:?true,
??????????????????fontSize:?'30',
??????????????????fontWeight:?'bold'
??????????????}
??????????},
??????????labelLine:?{
??????????????show:?false
??????????},
??????????data:?[
??????????????{value:?335,?name:?'AAA'},
??????????????{value:?310,?name:?'BBB'},
??????????????{value:?234,?name:?'CCC'},
??????????????{value:?135,?name:?'DDD'},
??????????????{value:?1548,?name:?'EEE'}
??????????]
??????}
??]
};

Page({
??data:?{
????ec:?{
??????onInit:?initChart
????}
??},
??onLoad:?function?()?{},
??//單曲線
??line()?{
????let?option2?=?{
??????title:?{
????????text:?'同一canvas更新成折線圖',
????????left:?'center'
??????},
??????xAxis:?{
????????type:?'category',
????????data:?['Mon',?'Tue',?'Wed',?'Thu',?'Fri',?'Sat',?'Sun']
??????},
??????yAxis:?{
????????type:?'value'
??????},
??????series:?[{
????????data:?[820,?932,?901,?934,?1290,?1330,?1320],
????????type:?'line'
??????}]
????};
????chart.setOption(option2)
??},
??//切換柱狀圖
??bar(){
????let?option3?=?{
??????title:?{
????????text:?'直接更新數據,減少性能消耗',
????????left:?'center'
??????},
??????xAxis:?{
??????????type:?'category',
??????????data:?['Mon',?'Tue',?'Wed',?'Thu',?'Fri',?'Sat',?'Sun']
??????},
??????yAxis:?{
??????????type:?'value'
??????},
??????series:?[{
??????????data:?[120,?200,?150,?80,?70,?110,?130],
??????????type:?'bar',
??????????showBackground:?true,
??????????backgroundStyle:?{
??????????????color:?'rgba(220,?220,?220,?0.8)'
??????????}
??????}]
????};
????chart.setOption(option3)
??}
})

建議大家盡量使用同一個canvas對象來切換不同的圖表效果,而不是初始加載多個不同的,我們可以將?chart?對象設置為全局,然后通過?chart.setOption()?的方法來更新配置數據,可以減少性能消耗避免閃退等

(3)代碼片段:

代碼段:https://developers.weixin.qq.com/s/OOTwnsms7Cin

建議將IDE工具升級到 1.02.18以上,避免一些BUG

代碼片段導入

3、Tips

(1)包大小可以配置

在線定制地址:

https://echarts.apache.org/zh/builder.html

定制組件功能包大小

通過選擇和配置想要的功能,可以大大減少原本JS包的尺寸。

(2)數據點過多造成閃退和卡死

本人簡單測試了下,iphone7p手機在1500個左右數據點的時候,出現了小程序閃退,iphoneX 測試下來大概在2500個左右,猜測可能由于微信本身給小程序的內存有限,所以建議大家控制數據點的個數

(3)單頁面圖表canvas加載過多卡死

建議單頁面圖表加載不要超過5個canvas,盡可能共用一個圖表Canvas對象,通過動態更新數據的方式來展示內容(還有帥氣的特效),如果一定要加載多個canvas的話,建議控制數量,提供復用性~

(4)Canvas 2d 版本要求

最新版的 ECharts 微信小程序支持微信 Canvas 2d,當用戶的基礎庫版本 >= 2.9.0 且沒有設置?force-use-old-canvas="true"的情況下,使用新的 Canvas 2d(默認)。

使用新的 Canvas 2d 可以提升渲染性能,解決非同層渲染問題,強烈建議開啟

如果仍需使用舊版 Canvas,使用方法如下:

<ec-canvas?id="xxx"?canvas-id="xxx"?ec="{{?ec?}}"?force-use-old-canvas="true">ec-canvas>

往期回顧:

  • [打怪升級]小程序自定義頭部導航欄解決方案

  • [拆彈時刻]小程序canvas生成海報各類問題的優化

  • [填坑手冊]小程序Canvas生成海報完整版

覺得內容還行的話,可以點“在看”按鈕喲

總結

以上是生活随笔為你收集整理的canvas js 绘图插件_[开盖即食]小程序图表插件eCharts实战的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美综合亚洲图片综合区 | 亚洲视频在线视频 | 少妇色综合 | 中文字幕女同女同女同 | 欧美久操 | 日本三级黄色录像 | 国产乡下妇女做爰 | 精品视频一区二区三区 | 久久精品播放 | 久久9热| 亚洲欧美日韩精品在线观看 | 波多野结衣视频在线看 | 日日插插 | 五月天在线观看 | 国产精品6 | 欧美成年人视频 | av体验区| 欧美日韩a√ | 国产xxxx孕妇 | 日韩国产在线播放 | 亚洲第一色| 精品久久久久一区二区国产 | 国内精品久久久久 | 自拍日韩亚洲一区在线 | 亚洲a毛片 | 岛国av在线免费观看 | 在线免费看a | 夜夜看av| 野花视频在线观看免费 | 日本色网址 | 夜夜春视频| 国产妻精品一区二区在线 | 免费国产黄色 | 国产精品一线 | 国产午夜精品理论片在线 | 日韩不卡高清视频 | 婷婷一区二区三区 | 99热麻豆 | 成人欧美日韩 | 蜜臀免费av| 婷婷综合激情 | 日本少妇色视频 | 99久久久无码国产精品性黑人 | 天天摸天天碰 | 干骚视频 | 男人天堂社区 | jizz处女| 欧美成人精品一区二区男人小说 | 神马影院午夜伦理 | 黄色尤物视频 | 欧美激情一区二区三区p站 欧美mv日韩mv国产网站app | 新版红楼梦在线高清免费观看 | 久久久久久网址 | av网站在线免费观看 | 国内精品视频在线播放 | 一区不卡在线观看 | 午夜成年视频 | 黄色网页在线免费观看 | 高清久久久久久 | 99精品在线视频观看 | 美女xx网站 | 嫩草影院在线观看视频 | 91理论片午午伦夜理片久久 | 国产精品一区二区三区免费 | 男人在线网站 | 欧美日韩 一区二区三区 | 91精品国产亚洲 | 久久尤物 | 成人a网| 精品一区二区三 | 国产精品一区二区三区久久 | 国产在线观看免费播放 | 欧美一区成人 | 国产青青草在线 | 毛片福利 | 日韩精品免费一区 | 啪啪啪毛片| 在线你懂的视频 | 性活交片大全免费看 | 精品电影在线观看 | 色中文字幕在线观看 | 正在播放一区二区 | 天天想你在线观看完整版电影高清 | 日本黄网在线观看 | 青娱乐伊人 | 久久网页| 18视频网站在线观看 | 波多野结衣电影在线播放 | 日日燥夜夜燥 | 久久99精品久久久久 | 欧美三区在线观看 | 性欧美大战久久久久久久久 | 中国少妇色 | 狠狠鲁狠狠干 | 野花视频在线观看免费 | 久久综合狠狠综合久久综合88 | 成人一区二区三区仙踪林 | 欧美成人片在线 | 亚洲综合色婷婷 |