微信小程序教程之-小程序中使用echarts

微信小程序使用echarts教程

平時(shí)經(jīng)常在web系統(tǒng)中使用折線圖溉贿、柱狀圖枫吧、儀表盤等等等圖表展示數(shù)據(jù),在瀏覽器頁面中我們?yōu)榱朔奖憬?jīng)常使用echarts宇色,官網(wǎng)教程也寫的很清楚九杂。

但是在微信小程序中我們同樣有這種需求,那么如果直接用canvas宣蠕,那么久太麻煩了例隆,說不定一個(gè)折線圖畫一上午!抢蚀,所有瞬間就會(huì)想到echarts等框架镀层,但是echarts官網(wǎng)沒有小程序版,不過C笄3辍!已經(jīng)有人在github發(fā)布echarts的小程序版本了屋休。坞古。感謝大神分享。

首先劫樟,下載echarts微信版 地址:https://github.com/ecomfe/echarts-for-weixin

下載后打開痪枫,如圖所示:


QQ截圖20181220174042.jpg

將下載好的文件中 ec-canvas目錄 放在小程序項(xiàng)目目錄中即可。如下圖所示:


QQ截圖20181220165743.jpg

然后在需要的地方引入即可叠艳,下面就做一個(gè)折線圖吧奶陈。

1.在頁面開啟使用echarts

如:在 page目錄的ceshi頁面中使用echarts的話,需要在ceshi.json中添加以下配置附较。

"usingComponents": {
    "ec-canvas": "../../ec-canvas/ec-canvas"
  }
2.引入

在 ceshi.js 中引入echarts.js

import * as echarts from '../../ec-canvas/echarts';
3.wxml元素

在ceshi.wxml中建立一個(gè)元素吃粒,外層用view包一下是方便設(shè)置echarts元素的寬高。

  <view class="echart_panel">
    <ec-canvas></ec-canvas>
  </view>
4.開始編寫圖表 折線圖

我是在ceshi.js中直接寫了一個(gè)函數(shù)拒课,傳一些參數(shù)徐勃,返回一個(gè)option,至于echarts的option寫法捕发,可以參考echats官網(wǎng)api文檔疏旨。

function getOption(xData, data_cur, data_his) {
  var option = {
    backgroundColor: "#f5f4f3",
    color: ["#37A2DA", "#f2960d", "#67E0E3", "#9FE6B8"],
    title: {
      text: '實(shí)時(shí)運(yùn)行速度',
      textStyle: {
        fontWeight: '500',
        fontSize: 15,
        color: '#000'
      },
      x:'center',
      y:'0'
    },
    legend: {
      data: ['今日', '昨日'],
      right: 10
    },
    grid: {
      top: '15%',
      left: '1%',
      right: '3%',
      bottom: '60rpx',
      containLabel: true
    },
    tooltip: {
      show: true,
      trigger: 'axis'
    },
    xAxis: {
      type: 'category',
      boundaryGap: false,
      data: xData||[],
      axisLabel: {
        interval: 11,
        formatter: function (value, index) {
          return value.substring(0, 2) * 1;
        },
        textStyle: {
          fontsize: '10px'
        }
      }
    },
    yAxis: {
      x: 'center',
      name: 'km/h',
      type: 'value',
      min: 0,
      max: 120
    },
    series: [{
      name: '今日',
      zIndex:2,
      type: 'line',
      smooth: true,
      symbolSize: 0,
      data: data_cur||[]
    },{
        name: '昨日',
        zIndex: 1,
        type: 'line',
        smooth: true,
        symbolSize: 0,
        data: data_his||[]
    }]
  };
  return option;
}

然后就可以在 頁面page中的data中配置初始化很魂,如何初始化扎酷?

首先 建立一個(gè)全局變量(注意,放在page外面遏匆,要全局變量法挨,不然你在頁面加載之后谁榜,在動(dòng)態(tài)修改圖表數(shù)據(jù)的話,沒法修改凡纳,這樣方便點(diǎn))窃植,

然后在data中初始化echats對(duì)象 ecLine,名字隨便起荐糜,按照官方寫法即可巷怜,onInit函數(shù)中參數(shù)有三個(gè),canvas, width, height暴氏,這些都不需要管延塑,直接初始化echats元素。復(fù)制粘貼即可答渔。

let chartLine;
Page({
    data: {
        ecLine: {
            onInit: function (canvas, width, height){
                //初始化echarts元素关带,綁定到全局變量,方便更改數(shù)據(jù)
                chartLine = echarts.init(canvas, null, {
                    width: width,
                    height: height
                });
                canvas.setChart(chartLine);

                //可以先不setOption沼撕,等數(shù)據(jù)加載好后賦值宋雏,
                //不過那樣沒setOption前,echats元素是一片空白务豺,體驗(yàn)不好磨总,所有我先set。
                var xData = [1,2,3,4,5......];  // x軸數(shù)據(jù) 自己寫
                var option = getOption(xData);
                chartLine.setOption(option);
            }
        }
    }
})

然后將建立的echats對(duì)象綁定到echarts元素中冲呢,如下:

<view class="echart_panel">
    <ec-canvas ec="{{ ecLine }}"></ec-canvas>
  </view>
QQ截圖20181220171735.jpg

然后就可以在數(shù)據(jù)加載后舍败,給圖表賦值option了,或者是重新setOption的數(shù)據(jù)敬拓。

//ajax請(qǐng)求好數(shù)據(jù)后邻薯,調(diào)用獲取option函數(shù),傳一些數(shù)據(jù)乘凸,
//然后用全局變量echarts元素chartLine 來 setOption即可厕诡。
// 三個(gè)參數(shù): x軸數(shù)據(jù),第一條線數(shù)據(jù)营勤,第二條數(shù)據(jù)灵嫌。 隨意,echarts就跟正常用隨便寫就行
// 隨便寫幾個(gè)假數(shù)據(jù)
var xData=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23];
var data_cur=[55,67,66,78,55,67,66,78,55,67,66,78,55,67,66,78,55,67,66,78,65,66,65,54];
var data_his=[67,66,78,65,66,65,54,67,66,78,65,66,65,54,67,66,78,65,66,65,54,67,66,78];
// 方法一:
var option = getOption(xData, data_cur, data_his);
chartLine.setOption(option);
// 方法二:
//如果上面初始化時(shí)候葛作,已經(jīng)chartLine已經(jīng)setOption了寿羞,
//那么建議不要重新setOption,官方推薦寫法赂蠢,重新賦數(shù)據(jù)即可绪穆。
chartLine.setOption({
    xAxis: {
        data: xData
    }, 
    series: [{
        data: data_cur
    }, {
        data: data_his
    }]
});

效果如下:

QQ截圖20181220173033.jpg

示例寫的折線圖,其他類型圖表,可以參考echarts官網(wǎng)文檔即可玖院。

因?yàn)閺膅ithub下載的echarts.js包含類型比較多菠红,如果上傳代碼進(jìn)行發(fā)布時(shí),提示echarts文件過大难菌,可以忽略试溯。

或者是自己重新下載echarts定制需要的組件,如我就需要折線圖郊酒,我就定制帶折線圖的即可遇绞。然后直接替換文件夾中的echarts.js即可。

下載定制echarts官網(wǎng)鏈接:http://echarts.baidu.com/builder.html

以上燎窘,結(jié)束试读。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市荠耽,隨后出現(xiàn)的幾起案子钩骇,更是在濱河造成了極大的恐慌,老刑警劉巖铝量,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件倘屹,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡慢叨,警方通過查閱死者的電腦和手機(jī)纽匙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拍谐,“玉大人烛缔,你說我怎么就攤上這事⌒Γ” “怎么了践瓷?”我有些...
    開封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵界弧,是天一觀的道長(zhǎng)减拭。 經(jīng)常有香客問我,道長(zhǎng)担映,這世上最難降的妖魔是什么砍濒? 我笑而不...
    開封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任淋肾,我火速辦了婚禮,結(jié)果婚禮上爸邢,老公的妹妹穿的比我還像新娘樊卓。我一直安慰自己,他們只是感情好杠河,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開白布碌尔。 她就那樣靜靜地躺著赶掖,像睡著了一般。 火紅的嫁衣襯著肌膚如雪七扰。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天陪白,我揣著相機(jī)與錄音颈走,去河邊找鬼。 笑死咱士,一個(gè)胖子當(dāng)著我的面吹牛立由,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播序厉,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼锐膜,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了弛房?” 一聲冷哼從身側(cè)響起道盏,我...
    開封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎文捶,沒想到半個(gè)月后荷逞,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡粹排,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年种远,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片顽耳。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡坠敷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出射富,到底是詐尸還是另有隱情膝迎,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布胰耗,位于F島的核電站弄抬,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏宪郊。R本人自食惡果不足惜掂恕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望弛槐。 院中可真熱鬧懊亡,春花似錦、人聲如沸乎串。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至鸯两,卻和暖如春闷旧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背钧唐。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來泰國打工忙灼, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人钝侠。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓该园,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親帅韧。 傳聞我的和親對(duì)象是個(gè)殘疾皇子里初,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容