最近因爲一些不可抗力因素,我跳槽去了一家作高校教育服務的公司,剛入職就正好遇上了PC端項目的重構,而我主要負責數據可視化
這一模塊,其實作起來不算複雜,可是在使用Echarts的過程當中也踩到了一些坑。前端
這是vue項目實戰echarts的下篇,尚未看過上篇的同窗請點擊這裏進行查閱。通過了上一文章的學習, 相信你必定對如何在vue中使用echarts有了初步認識,能夠在項目中熟練的繪製你想要的任何echart了。vue
上篇連接:前端深刻之Vue篇 丨如何在項目中優雅的使用Echarts(上)數組
尚未看過的小夥伴必定要先學習上篇練習一下吶~數據結構
但願小夥伴閱讀完以後能夠在項目中掌握Echarts正確的使用方式,而且在個人基礎上可以少踩一些坑。echarts
在學習完上篇以後相信你必定會感受很簡單的,而真正作項目,咱們的數據都是接口請求返回來的,如何將返回的數據展現到Echarts
中呢,帶着這個問題跟我一塊兒來學習吧。post
爲了保證小夥伴們都可以順利進行,能夠複製如下代碼到data中,當作請求完以後的調用。學習
chartData = { attenceRate: 0.125, homewordRate: 0.125, topicRate: 0.125, starRate: 0.125, interactRate: 0.125, classAttenceRate: 0.125, classHomewordRate: 0.125, classTopicRate: 0.125, classStarRate: 0.125, classInteractRate: 0.125 };
因爲上一篇我找的雷達圖這個例子比較簡單,因此咱們依次把數據放進去就好,給出option>series
的代碼,小夥伴複製過去就能夠了。this
series: [ { type: "radar", data: [ { value: [ this.userAnalycomplexEchart.attenceRate, this.userAnalycomplexEchart.homewordRate, this.userAnalycomplexEchart.topicRate, this.userAnalycomplexEchart.starRate, this.userAnalycomplexEchart.interactRate ], name: "學生我的" }, { value: [ this.userAnalycomplexEchart.classAttenceRate, this.userAnalycomplexEchart.classHomewordRate, this.userAnalycomplexEchart.classTopicRate, this.userAnalycomplexEchart.classStarRate, this.userAnalycomplexEchart.classInteractRate ], name: "班級平均" } ] } ]
實際開發中只須要在接口請求完的then
中調用Echarts
繪製的方法就能夠了。
更多時候並非這樣直接填入就能夠,好比折線圖、柱狀圖等數據量不少的時候,接口返回給咱們的經常是一個數組,咱們須要準確取到數組的值push
到對應的地方纔能夠。下面我以折線圖爲例進行展現。spa
knowledgeChartData = [ { timeDay: "01-08", knowledgeCount: 24 }, { timeDay: "01-09", knowledgeCount: 23 }, { timeDay: "01-10", knowledgeCount: 32 }, { timeDay: "01-11", knowledgeCount: 43 }, { timeDay: "01-12", knowledgeCount: 12 }, { timeDay: "01-13", knowledgeCount: 53 }, ];
首先給出接口數據,請你自行把它複製到data
中。在下面我也給出你我頁面中折線圖option
配置,一樣你能夠複製個人或者複製官方示例到本身的項目裏。code
option = { tooltip: { trigger: "axis" }, legend: { orient: "vertical", left: "5%", data: ["掌握狀況"] }, color: ["#FF507C"], grid: { left: "3%", right: "4%", bottom: "3%", containLabel: true }, xAxis: { type: "category", boundaryGap: false, data: [] }, yAxis: { splitLine: { lineStyle: { type: "dotted" } }, nameTextStyle: { color: "#b5b8ba" }, type: "value" }, series: [ { name: "掌握狀況", smooth: true, type: "line", data: [] } ] };
OK,到這裏你已經有了一個空的折線圖了,經過閱讀代碼能夠看到在option
中分別有xAxis
和yAxis
,對應的分別是X軸和Y軸,而其中的data
就是X軸和Y軸所對應的數據項。如今咱們將knowledgeChartData
的值拿出來,經過循環,將它們分別到對應的data中就能夠了。
this.knowledgeChartData.map(i => { option.xAxis.data.push(i.timeDay); option.series[0].data.push(i.knowledgeCount); }); myChart.setOption(option);
在調整完option
以後執行setOption
,全部數據就可以正確顯示到頁面上了~
固然,真實開發中仍是會有各類各樣的接口數據返回,更多時候返回的數據須要咱們進行比對、拆分、整理、合併等步驟才能變成咱們真正須要的數據結構。
這篇文章主要是一個引子,讓小夥伴們瞭解如何在vue項目中使用Echarts
,而且真正可以在項目中使用簡單的Echarts
,更多更深刻的就須要小夥伴們本身去研究了。
再對數據處理的時候免不了對數組的一些操做,若是有對數組的經常使用操做不了解的地方能夠查看這篇文章,相信學完之後你就能夠從容地將各類接口返回的數據處理成你想要的格式,從而能夠在項目中使用各類Echarts了~
以上就是本文章的所有內容了,若是有不正確的地方歡迎指正。
感謝您的閱讀,若是感受有用不妨點贊/轉發。
前端深刻系列是一個踩坑系列,是由我本人對工做和學習中所遇到的問題和踩過的坑的一個探索與總結,在此記錄分享出去,同時也是對自我技能的一個反思和追問。
前端路漫,踩坑不斷。
前端深刻系列持續更新中……
以上2020-01-15。