前端深刻之Vue篇 丨如何在項目中優雅的使用Echarts(下)

寫在前面

最近因爲一些不可抗力因素,我跳槽去了一家作高校教育服務的公司,剛入職就正好遇上了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繪製的方法就能夠了。spa

可是。。。

更多時候並非這樣直接填入就能夠,好比折線圖、柱狀圖等數據量不少的時候,接口返回給咱們的經常是一個數組,咱們須要準確取到數組的值push到對應的地方纔能夠。下面我以折線圖爲例進行展現。code

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配置,一樣你能夠複製個人或者複製官方示例到本身的項目裏。

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中分別有xAxisyAxis,對應的分別是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。

相關文章
相關標籤/搜索