温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

vue.js能不能使用echarts

发布时间:2020-12-22 09:57:25 阅读:153 作者:小新 栏目:编程语言
Vue开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

小编给大家分享一下vue.js能不能使用echarts,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

vue.js能用echarts,具体操作方法:1、在控制台中输入“npm install echarts --save”命令安装echarts依赖;2、在main.js中进行全局引入,就可以使用echarts创建图表。

最近工作中需要用到echarts,由于项目是用的vue-cli开发的。在网上搜到vue中合成了vue-echarts,但是不想使用vue中规定好的数据格式,于是就自己做了一个vue项目引用原生echarts的简单demo,实现过程如下:用了两种实现方式

准备工作

1、安装echarts依赖

控制台输入:npm install echarts --save

2、全局引入

main.js中引入

import echarts from 'echarts'
Vue.prototype.$echarts = echarts

创建图表

第一种创建方式

在一个.vue文件中引入多张图表

创建WelcomePage.vue

<template>
 <div>
 <h2>第一种在vue中使用echart的方式</h2>

 <div class="charts">
  <div id="barGraph" style="height: 350px;"></div>
 </div>

 <div class="charts">
  <div id="pieGraph" style="height: 350px;"></div>
 </div>

 </div>
</template>
<script>
// 引入基本模板,按需加载
 let echarts = require('echarts/lib/echarts');
 // 引入柱状图
 require('echarts/lib/chart/bar');
 // 引入柱状图
 require('echarts/lib/chart/pie');
 require('echarts/lib/component/tooltip');
 require('echarts/lib/component/title');


export default {
 name: "WelcomePage",
 data () {
 return { }
 },
 mounted(){
 this.drawBar();
 this.drawPie();
 },
 methods:{
 drawBar(){
  // 基于dom,初始化echarts实例
  let barGraph = echarts.init(document.getElementById('barGraph'));
  // 绘制图表
  barGraph.setOption({
  title: {
   text'全年产量趋势图',
   left'center'
  },
  tooltip: {
   trigger'item',
   formatter'{a} <br/>{b} : {c}'
  },
  legend: {
   left'center',
   data: ['本年''上年'],
   bottom:0
  },
  xAxis: {
   type'category',
   name'x',
   splitLine: {showfalse},
   data: ['一月''二月''三月''四月''五月''六月''七月''八月''九月''十月''十一月''十二月']
  },
  grid: {
   left'1%',
   right'2%',
   bottom'8%',
   containLabeltrue
  },
  yAxis: {
   type'category',
   name'y',
   splitLine: {showtrue},
   data:['10%','20%','30%','40%','50%','60%','70%','80%','90%','100%']
  },
  series: [
   {
   name'本年',
   type'line',
   data: [0.80.980.960.270.810.470.740.23.690.250.360.56]
   },
   {
   name'上年',
   type'line',
   data: [10.20.40.80.160.320.641.285.60.250.630.650.12]
   },
  ]
  })
 },
 drawPie(){
  let pieGraph = echarts.init(document.getElementById('pieGraph'));
  pieGraph.setOption({
  title : {
   text'某站点用户访问来源',
   subtext'纯属虚构',
   x:'center'
  },
  tooltip : {
   trigger'item',
   formatter"{a} <br/>{b} : {c} ({d}%)"
  },
  legend: {
   orient'vertical',
   left'left',
   data: ['直接访问','邮件营销','联盟广告','视频广告','搜索引擎']
  },
  series : [
   {
   name'访问来源',
   type'pie',
   radius '55%',
   center: ['50%''60%'],
   data:[
    {value:335, name:'直接访问'},
    {value:310, name:'邮件营销'},
    {value:234, name:'联盟广告'},
    {value:135, name:'视频广告'},
    {value:1548, name:'搜索引擎'}
   ],
   itemStyle: {
    emphasis: {
    shadowBlur10,
    shadowOffsetX0,
    shadowColor'rgba(0, 0, 0, 0.5)'
    }
   }
   }
  ]
  })
 }
 }
}
</script>

实现效果如下图:

vue.js能不能使用echarts

第二种实现方式(以组件的形式)

创建父组件 father.vue

<div>
 <h2>{{ msg }}</h2>
 <p>第二种方式:通过组件的方式进行页面渲染</p>
 <div class="container" >
  <bar-graph></bar-graph>
 </div>

 <div class="container">
  <pie-graph></pie-graph>
 </div>

 </div>
<script>
// 引入两个子组件
 import BarGraph from "./bargraph";
 import PieGraph from "./piegraph";
 export default {
 name"father",
 components:{
  BarGraph,
  PieGraph,
 },
 data(){
  return{
  msg'我是爸爸,想看我的儿子,眼睛请往下移',
  }
 }
 }
</script>

创建子组件barGraph.vue

 <div>
 <p>{{ msg }}</p>
 <div class="charts">
  <div :id="id" style="min-height: 350px;"></div>
 </div>
 </div>
<script>
 let echarts = require('echarts/lib/echarts');
 // 引入柱状图
 require('echarts/lib/chart/bar');
 require('echarts/lib/component/tooltip');
 require('echarts/lib/component/title');

 // import echarts from 'echarts'

 export default {
  name: "bargraph",
  // props:['id'], // 第一种接收父亲传过来的值的方式
  props: {
  id: {
   type: String,
   default'chart'
  }
  },
  data(){
   return {
   msg: "我是第一个子组件--bar",
   chart: null,
   }
  },
  mounted(){
  this.drawBar();
  },
  methods:{
  drawBar(){
   this.chart = echarts.init(document.getElementById(this.id));
   let colors = ['#5793f3''#d14a61''#675bba'];
   this.chart.setOption(
   {
    color: colors,

    tooltip: {
    trigger'axis',
    axisPointer: {
     type'cross'
    }
    },
    grid: {
    right'20%'
    },
    toolbox: {
    feature: {
     dataView: {showtrue, readOnlyfalse},
     restore: {showtrue},
     saveAsImage: {showtrue}
    }
    },
    legend: {
    data:['蒸发量','降水量','平均温度']
    },
    xAxis: [
    {
     type'category',
     axisTick: {
     alignWithLabeltrue
     },
     data: ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月']
    }
    ],
    yAxis: [
    {
     type'value',
     name'蒸发量',
     min0,
     max250,
     position'right',
     axisLine: {
     lineStyle: {
      color: colors[0]
     }
     },
     axisLabel: {
     formatter'{value} ml'
     }
    },
    {
     type'value',
     name'降水量',
     min0,
     max250,
     position'right',
     offset80,
     axisLine: {
     lineStyle: {
      color: colors[1]
     }
     },
     axisLabel: {
     formatter'{value} ml'
     }
    },
    {
     type'value',
     name'温度',
     min0,
     max25,
     position'left',
     axisLine: {
     lineStyle: {
      color: colors[2]
     }
     },
     axisLabel: {
     formatter'{value} °C'
     }
    }
    ],
    series: [
    {
     name:'蒸发量',
     type:'bar',
     data:[2.04.97.023.225.676.7135.6162.232.620.06.43.3]
    },
    {
     name:'降水量',
     type:'bar',
     yAxisIndex1,
     data:[2.65.99.026.428.770.7175.6182.248.718.86.02.3]
    },
    {
     name:'平均温度',
     type:'line',
     yAxisIndex2,
     data:[2.02.23.34.56.310.220.323.423.016.512.06.2]
    }
    ]
   }
   )
  }
  }
 }
</script>

创建pieGraph.vue

<template>
 <div>
  <p>{{ msg }}</p>

  <div class="charts">
  <div :id="id" style="min-height: 350px;"></div>
  </div>
 </div>
</template>
<script>
 import echarts from 'echarts'

 export default {
  name: "piegraph",
  props:{
  id: {
   type: String,
   default'pieChart'
  }
  },
  data(){
   return{
   msg: '我是第二个子组件--pie',
   pieChart: null
   }
  },
  mounted(){
   this.drawPie();
  },
  methods: {
  drawPie () {
   this.pieChart = echarts.init(document.getElementById(this.id));
   this.pieChart.setOption(
   {
    title : {
    text'某站点用户访问来源',
    subtext'纯属虚构',
    x:'center'
    },
    tooltip : {
    trigger'item',
    formatter"{a} <br/>{b} : {c} ({d}%)"
    },
    legend: {
    orient'vertical',
    left'left',
    data: ['直接访问','邮件营销','联盟广告','视频广告','搜索引擎']
    },
    series : [
    {
     name'访问来源',
     type'pie',
     radius '55%',
     center: ['50%''60%'],
     data:[
     {value:335, name:'直接访问'},
     {value:310, name:'邮件营销'},
     {value:234, name:'联盟广告'},
     {value:135, name:'视频广告'},
     {value:1548, name:'搜索引擎'}
     ],
     itemStyle: {
     emphasis: {
      shadowBlur10,
      shadowOffsetX0,
      shadowColor'rgba(0, 0, 0, 0.5)'
     }
     }
    }
    ]
   }
   )
  }
  }
 }
</script>

效果实现如下:

vue.js能不能使用echarts

vue.js能不能使用echarts

路由文件如下:

import WelcomePage from '@/components/WelcomePage'
import Father from '@/components/father'

import BarGraph from '@/components/bargraph'
import PieGraph from '@/components/piegraph'

export default new Router({
 routes: [
 {
  path'/',
  name'WelcomePage',
  component: WelcomePage
 },
 {
  path'/father',
  name'father',
  component: Father,
  children:[
  {
   path'/bargraph',
   name'bargraph',
   component: BarGraph
  },
  {
   path'/piegraph',
   name'piegraph',
   component: PieGraph
  }
  ]
 },
 ]
})

以上是“vue.js能不能使用echarts”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI

开发者交流群×