Vue+Echarts實現(xiàn)簡單折線圖
本文實例為大家分享了Vue+Echarts實現(xiàn)簡單折線圖的具體代碼,供大家參考,具體內(nèi)容如下
Vue+Echarts實現(xiàn)一個折線圖,打開vue的項目:
1、在項目里面安裝echarts
npm install echarts --save
2、在需要用圖表的地方引入
import echarts from 'echarts'
3、打開my.vue
繼續(xù)寫代碼,代碼如下:
<template>
? ? <!--為echarts準備一個具備大小的容器dom-->
? ? <div id="main" style="width: 600px;height: 400px;"></div>
</template>
<script>
? ? import echarts from 'echarts'
? ? export default {
? ? ? ? name: '',
? ? ? ? data() {
? ? ? ? ? ? return {
? ? ? ? ? ? ? ? charts: '',
? ? ? ? ? ? /* ?opinion: ["1", "3", "3", "4", "5"],*/
? ? ? ? ? ? ? ? opinionData: ["3", "2", "4", "4", "5"]
? ? ? ? ? ? }
? ? ? ? },
? ? ? ? methods: {
? ? ? ? ? ? drawLine(id) {
? ? ? ? ? ? ? ? this.charts = echarts.init(document.getElementById(id))
? ? ? ? ? ? ? ? this.charts.setOption({
? ? ? ? ? ? ? ? ? ? tooltip: {
? ? ? ? ? ? ? ? ? ? ? ? trigger: 'axis'
? ? ? ? ? ? ? ? ? ? },
? ? ? ? ? ? ? ? ? ? legend: {
? ? ? ? ? ? ? ? ? ? ? ? data: ['近七日收益']
? ? ? ? ? ? ? ? ? ? },
? ? ? ? ? ? ? ? ? ? grid: {
? ? ? ? ? ? ? ? ? ? ? ? left: '3%',
? ? ? ? ? ? ? ? ? ? ? ? right: '4%',
? ? ? ? ? ? ? ? ? ? ? ? bottom: '3%',
? ? ? ? ? ? ? ? ? ? ? ? containLabel: true
? ? ? ? ? ? ? ? ? ? },
?
? ? ? ? ? ? ? ? ? ? toolbox: {
? ? ? ? ? ? ? ? ? ? ? ? feature: {
? ? ? ? ? ? ? ? ? ? ? ? ? ? saveAsImage: {}
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? },
? ? ? ? ? ? ? ? ? ? xAxis: {
? ? ? ? ? ? ? ? ? ? ? ? type: 'category',
? ? ? ? ? ? ? ? ? ? ? ? boundaryGap: false,
? ? ? ? ? ? ? ? ? ? data: ["1","2","3","4","5"]
? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? },
? ? ? ? ? ? ? ? ? ? yAxis: {
? ? ? ? ? ? ? ? ? ? ? ? type: 'value'
? ? ? ? ? ? ? ? ? ? },
?
? ? ? ? ? ? ? ? ? ? series: [{
? ? ? ? ? ? ? ? ? ? ? ? name: '近七日收益',
? ? ? ? ? ? ? ? ? ? ? ? type: 'line',
? ? ? ? ? ? ? ? ? ? ? ? stack: '總量',
? ? ? ? ? ? ? ? ? ? ? ? data: this.opinionData
? ? ? ? ? ? ? ? ? ? }]
? ? ? ? ? ? ? ? })
? ? ? ? ? ? }
? ? ? ? },
? ? ? ? //調(diào)用
? ? ? ? mounted() {
? ? ? ? ? ? this.$nextTick(function() {
? ? ? ? ? ? ? ? this.drawLine('main')
? ? ? ? ? ? })
? ? ? ? }
? ? }
</script>
<style scoped>
? ? * {
? ? ? ? margin: 0;
? ? ? ? padding: 0;
? ? ? ? list-style: none;
? ? }
</style>這個時候,可以看到,加載出的折線圖了,后面可以繼續(xù)進行完善。

這是最基本的折線圖,里面的折線點需要替換的話,要注意一些事情
如下代碼 所示
<template>
? ? <!--為echarts準備一個具備大小的容器dom-->
? ? <div id="main" style="width: 600px;height: 400px;"></div>
</template>
<script>
?? ?import {getorder} from '../api/api.js'
? ? import echarts from 'echarts'
? ? export default {
? ? ? ? name: '',
? ? ? ? data() {
? ? ? ? ? ? return {
? ? ? ? ? ? ? ? charts: '',
? ? ? ? ? ? ?? ?/* ?opinion: ["1", "3", "3", "4", "5"],*/
? ? ? ? ? ? ?? ?
? ? ? ? ? ? ?? ?//opinionData: ["3", "2", "4", "4", "5"]
? ? ? ? ? ? ? ? opinionData: [],
? ? ? ? ? ? ? ? temp:[],
? ? ? ? ? ? ? ? id:1,
? ? ? ? ? ? }
? ? ? ? },
? ? ? ? methods: {
? ? ? ? ? ? drawLine(id) {
? ? ? ? ? ? ?? ?// 前端向后端發(fā)送請求,獲取數(shù)據(jù)(折線點)
? ? ? ? ? ? ?? ?// 發(fā)送請求 要寫在drawLine方法里面,不然的話 opinionData 賦予不上數(shù)據(jù),做無用功
? ? ? ? ? ? ?? ?// params 里面的是 要向后端傳遞的一些參數(shù),為了獲取數(shù)據(jù)庫中的數(shù)據(jù),要替換成你自己的參數(shù)
? ? ? ? ? ? ? ? let params = {typ:9,id:this.id}
? ? ? ? ? ? ? ? // 這是我個人的 axios 封裝,有興趣的話,可以看我 axios 封裝的文章
? ? ? ? ? ? ? ? getorder(params).then((result)=>{
? ? ? ? ? ? ? ? this.temp = result.data.tempdic
? ? ? ? ? ? ? ? // console.log(this.temp)
? ? ? ? ? ? ? ? // 進行賦值
? ? ? ? ? ? ? ? for (let i = 0; i < this.temp.length; i++) {
? ? ? ? ? ? ? ? ? ? var str = ''
? ? ? ? ? ? ? ? ? ? str += this.temp[i].temp
? ? ? ? ? ? ? ? ? ? this.opinionData.push(str)
? ? ? ? ? ? ? ? ? ? // console.log(this.temp[i].temp)
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? // 折線圖 自帶的代碼
? ? ? ? ? ? ? ? this.charts = echarts.init(document.getElementById(id))
? ? ? ? ? ? ? ? this.charts.setOption({
? ? ? ? ? ? ? ? ? ? tooltip: {
? ? ? ? ? ? ? ? ? ? ? ? trigger: 'axis'
? ? ? ? ? ? ? ? ? ? },
? ? ? ? ? ? ? ? ? ? legend: {
? ? ? ? ? ? ? ? ? ? ? ? data: ['溫度展示']
? ? ? ? ? ? ? ? ? ? },
? ? ? ? ? ? ? ? ? ? grid: {
? ? ? ? ? ? ? ? ? ? ? ? left: '3%',
? ? ? ? ? ? ? ? ? ? ? ? right: '4%',
? ? ? ? ? ? ? ? ? ? ? ? bottom: '3%',
? ? ? ? ? ? ? ? ? ? ? ? containLabel: true
? ? ? ? ? ? ? ? ? ? },
?
? ? ? ? ? ? ? ? ? ? toolbox: {
? ? ? ? ? ? ? ? ? ? ? ? feature: {
? ? ? ? ? ? ? ? ? ? ? ? ? ? saveAsImage: {}
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? },
? ? ? ? ? ? ? ? ? ? xAxis: {
? ? ? ? ? ? ? ? ? ? ? ? type: 'category',
? ? ? ? ? ? ? ? ? ? ? ? boundaryGap: false,
? ? ? ? ? ? ? ? ? ? data: []
? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? },
? ? ? ? ? ? ? ? ? ? yAxis: {
? ? ? ? ? ? ? ? ? ? ? ? type: 'value',
? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? },
?
? ? ? ? ? ? ? ? ? ? series: [{
? ? ? ? ? ? ? ? ? ? ? ? name: '溫度展示',
? ? ? ? ? ? ? ? ? ? ? ? type: 'line',
? ? ? ? ? ? ? ? ? ? ? ? stack: '總量',
? ? ? ? ? ? ? ? ? ? ? ? data: this.opinionData
? ? ? ? ? ? ? ? ? ? }]
? ? ? ? ? ? ? ? }) ? ? ? ? ? ?
? ? ? ? ? ? }) ? ?
? ? ? ? ? ? }
? ? ? ? },
? ? ? ? //調(diào)用
? ? ? ? mounted() {
? ? ? ? ? ? this.$nextTick(function() {
? ? ? ? ? ? ? ? this.drawLine('main')
? ? ? ? ? ? })
? ? ? ? }
? ? }
</script>
<style scoped>
? ? * {
? ? ? ? margin: 0;
? ? ? ? padding: 0;
? ? ? ? list-style: none;
? ? }
</style>這樣就能展示出,我們想展示的數(shù)據(jù)的折線圖了!
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
webpack轉(zhuǎn)vite的詳細操作流程與問題總結(jié)
Vite是新一代的前端開發(fā)與構(gòu)建工具,相比于傳統(tǒng)的webpack,Vite 有著極速的本地項目啟動速度(通常不超過5s)以及極速的熱更新速度(幾乎無感知),下面這篇文章主要給大家介紹了關于webpack轉(zhuǎn)vite的詳細操作流程與問題總結(jié)的相關資料,需要的朋友可以參考下2023-03-03
vue3集成Element-plus實現(xiàn)按需自動引入組件的方法總結(jié)
vue3出來一段時間了,element也更新了版本去兼容vue3,下面這篇文章主要給大家介紹了關于vue3集成Element-plus實現(xiàn)按需自動引入組件的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下2022-07-07
vue中el-select 和el-tree二次封裝實現(xiàn)
本文介紹了vue中el-select 和el-tree二次封裝實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-11-11
在vue.js渲染完界面之后如何再調(diào)用函數(shù)
這篇文章主要介紹了在vue.js渲染完界面之后如何再調(diào)用函數(shù)的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07
vue中LocalStorage與SessionStorage的區(qū)別與用法
本文主要介紹了LocalStorage和SessionStorage。LocalStorage和SessionStorage是兩種存儲方式,本文詳細的介紹一下區(qū)別以及用法,感興趣的可以了解一下2021-09-09

