@zhouyy
2018-04-25T08:21:58.000000Z
字数 2878
阅读 474
vue
cankao:
https://blog.csdn.net/mr_wuch/article/details/70225364
npm install echarts -S
或者使用国内的淘宝镜像:
//安装npm install -g cnpm --registry=https://registry.npm.taobao.org//使用cnpm install echarts -S
main.js// 引入echartsimport echarts from 'echarts'Vue.prototype.$echarts = echarts
Hello.vue
<div id="myChart" :style="{width: '300px', height: '300px'}"></div>export default {name: 'hello',data () {return {msg: 'Welcome to Your Vue.js App'}},mounted(){this.drawLine();},methods: {drawLine(){// 基于准备好的dom,初始化echarts实例let myChart = this.$echarts.init(document.getElementById('myChart'))// 绘制图表myChart.setOption({title: { text: '在Vue中使用echarts' },tooltip: {},xAxis: {data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]},yAxis: {},series: [{name: '销量',type: 'bar',data: [5, 20, 36, 10, 10, 20]}]});}}}
注意: 这里echarts初始化应在钩子函数mounted()中,这个钩子函数是在el 被新创建的 vm.$el 替换,并挂载到实例上去之后调用
<template><q-page ><!-- content --><div id="myChart" :style="{width: '800px', height: '500px'}"></div></q-page></template><script>let echarts = require('echarts/lib/echarts')// 引入柱状图组件require('echarts/lib/chart/radar')require('echarts/lib/component/legend')var dataBJ = [[97,89,100,99,100]];var dataSH = [[99,100,96,100,100]];var lineStyle = {normal: {width: 1,opacity: 0.5}};export default {// name: 'PageName',mounted() {this.drawLine();},methods: {drawLine() {// 基于准备好的dom,初始化echarts实例let myChart = echarts.init(document.getElementById('myChart'))//自适应window.onresize = myChart.resize// 绘制图表myChart.setOption({backgroundColor: '#000',legend: {bottom: 5,data: ['企业指数', '均值'],itemGap: 20,textStyle: {color: '#fff',fontSize: 14}},radar: {indicator: [{name: '企业质量指数',min:80, max: 100},{name: '食品溯源指标', min:80, max: 100},{name: '食品安全指标',min:80, max: 100},{name: '厨房规范指标', min:80, max: 100},{name: '餐储油脂处理指标',min:80, max: 100}],shape: 'circle',splitNumber: 3,name: {textStyle: {color: 'rgb(238, 197, 102)'}},splitLine: {lineStyle: {color: ['rgba(238, 197, 102, 0.1)', 'rgba(238, 197, 102, 0.2)','rgba(238, 197, 102, 0.4)', 'rgba(238, 197, 102, 0.6)','rgba(238, 197, 102, 0.8)', 'rgba(238, 197, 102, 1)'].reverse()}},splitArea: {areaStyle: {color: ['rgba(114, 172, 209, 0.2)']}},axisLine: {lineStyle: {color: 'rgba(238, 197, 102, 0.5)'}}},series: [{name: '企业指数',type: 'radar',lineStyle: lineStyle,data: dataBJ,symbol: 'rect',label: {normal: {show: true,formatter:function(params) {return params.value;}}},itemStyle: {normal: {color: '#F9713C'}},areaStyle: {normal: {opacity: 0.3}}},{name: '均值',type: 'radar',lineStyle: {normal: {type: 'dashed'}},data: dataSH,symbol: 'none',itemStyle: {normal: {color: '#B3E4A1'}},areaStyle: {normal: {opacity: 0.01}}}]});}}}</script><style></style>
echart图表一旦绘制成功,内容就不会再变化。所以对于echart图表,其"响应式"应该是可以随着窗口调整不断被重新绘制,不是简单的调整宽高。(见:http://www.cnblogs.com/qjqcs/p/6279674.html)
ECharts没有绑定resize事件,显示区域大小发生改变内部并不知道,使用方可以根据自己的需求绑定关心的事件,主动调用resize达到自适应的效果,常见如window.onresize = myChart.resize。
(见:https://www.cnblogs.com/yigexiaojiangshi/p/7249094.html)
注意:
如果这个页面有多个图表:
//多图表自适应window.addEventListener("resize", function () {myEnergyChart.resize();myEnergyChart2.resize();});