irpas技术客

vue使用echarts动态渲染data数据_不愁发量_echarts动态渲染数据

网络投稿 7415

话不多说贴代码

创建一个js文件来放echarts数据

首先js中引入echarts

import echarts from 'echarts'

然后定义一个叫echartslist的函数。

这里axios引入本地一个自己写好的json文件,可以换成后台接口。

// Echarts图表 柱状图

? ? ? ? Vue.prototype.echartslist = function(){

? ? ? ? ? this.axios.get('echarts.json').then(res=>{

? ? ? ? ? ? console.log(res.data)

? ? ? ? ? ? ? let myChart = this.$echarts.init(document.getElementById("echarts"));

? ? ? ? ? ? ? var option = {

? ? ? ? ? ? ? ? backgroundColor: "#323a5e",

? ? ? ? ? ? ? ? tooltip: {

? ? ? ? ? ? ? ? ? trigger: "axis",

? ? ? ? ? ? ? ? ? axisPointer: {

? ? ? ? ? ? ? ? ? ? // 坐标轴指示器,坐标轴触发有效

? ? ? ? ? ? ? ? ? ? type: "shadow", // 默认为直线,可选为:'line' | 'shadow'

? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? grid: {

? ? ? ? ? ? ? ? ? left: "2%",

? ? ? ? ? ? ? ? ? right: "4%",

? ? ? ? ? ? ? ? ? bottom: "14%",

? ? ? ? ? ? ? ? ? top: "16%",

? ? ? ? ? ? ? ? ? containLabel: true,

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? legend: {

? ? ? ? ? ? ? ? ? data: ["1", "2", "3"],

? ? ? ? ? ? ? ? ? right: 10,

? ? ? ? ? ? ? ? ? top: 12,

? ? ? ? ? ? ? ? ? textStyle: {

? ? ? ? ? ? ? ? ? ? color: "#fff",

? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? itemWidth: 12,

? ? ? ? ? ? ? ? ? itemHeight: 10,

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? xAxis: {

? ? ? ? ? ? ? ? ? type: "category",

? ? ? ? ? ? ? ? ? data: ["2015", "2016", "2017", "2018", "2019", "2020", "2021", "2022","2023"],

? ? ? ? ? ? ? ? ? axisLine: {

? ? ? ? ? ? ? ? ? ? lineStyle: {

? ? ? ? ? ? ? ? ? ? ? color: "white",

? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? axisLabel: {

? ? ? ? ? ? ? ? ? ? textStyle: {

? ? ? ? ? ? ? ? ? ? ? fontFamily: "Microsoft YaHei",

? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? yAxis: {

? ? ? ? ? ? ? ? ? type: "value",

? ? ? ? ? ? ? ? ? max: "1200",

? ? ? ? ? ? ? ? ? axisLine: {

? ? ? ? ? ? ? ? ? ? show: false,

? ? ? ? ? ? ? ? ? ? lineStyle: {

? ? ? ? ? ? ? ? ? ? ? color: "white",

? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? splitLine: {

? ? ? ? ? ? ? ? ? ? show: true,

? ? ? ? ? ? ? ? ? ? lineStyle: {

? ? ? ? ? ? ? ? ? ? ? color: "rgba(255,255,255,0.3)",

? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? axisLabel: {},

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? dataZoom: [

? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? show: true,

? ? ? ? ? ? ? ? ? ? height: 12,

? ? ? ? ? ? ? ? ? ? xAxisIndex: [0],

? ? ? ? ? ? ? ? ? ? bottom: "8%",

? ? ? ? ? ? ? ? ? ? start: 10,

? ? ? ? ? ? ? ? ? ? end: 90,

? ? ? ? ? ? ? ? ? ? handleIcon:

? ? ? ? ? ? ? ? ? ? ? "path://M306.1,413c0,2.2-1.8,4-4,4h-59.8c-2.2,0-4-1.8-4-4V200.8c0-2.2,1.8-4,4-4h59.8c2.2,0,4,1.8,4,4V413z",

? ? ? ? ? ? ? ? ? ? handleSize: "110%",

? ? ? ? ? ? ? ? ? ? handleStyle: {

? ? ? ? ? ? ? ? ? ? ? color: "#d3dee5",

? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? textStyle: {

? ? ? ? ? ? ? ? ? ? ? color: "#fff",

? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? borderColor: "#90979c",

? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? type: "inside",

? ? ? ? ? ? ? ? ? ? show: true,

? ? ? ? ? ? ? ? ? ? height: 15,

? ? ? ? ? ? ? ? ? ? start: 1,

? ? ? ? ? ? ? ? ? ? end: 35,

? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ],

? ? ? ? ? ? ? ? series: [

? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? name: "1",

? ? ? ? ? ? ? ? ? ? type: "bar",

? ? ? ? ? ? ? ? ? ? barWidth: "15%",

? ? ? ? ? ? ? ? ? ? itemStyle: {

? ? ? ? ? ? ? ? ? ? ? normal: {

? ? ? ? ? ? ? ? ? ? ? ? color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [

? ? ? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? ? ? offset: 0,

? ? ? ? ? ? ? ? ? ? ? ? ? ? color: "#fccb05",

? ? ? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? ? ? offset: 1,

? ? ? ? ? ? ? ? ? ? ? ? ? ? color: "#f5804d",

? ? ? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? ? ]),

? ? ? ? ? ? ? ? ? ? ? ? barBorderRadius: 12,

? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? data: res.data.data

? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? name: "2",

? ? ? ? ? ? ? ? ? ? type: "bar",

? ? ? ? ? ? ? ? ? ? barWidth: "15%",

? ? ? ? ? ? ? ? ? ? itemStyle: {

? ? ? ? ? ? ? ? ? ? ? normal: {

? ? ? ? ? ? ? ? ? ? ? ? color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [

? ? ? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? ? ? offset: 0,

? ? ? ? ? ? ? ? ? ? ? ? ? ? color: "#8bd46e",

? ? ? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? ? ? offset: 1,

? ? ? ? ? ? ? ? ? ? ? ? ? ? color: "#09bcb7",

? ? ? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? ? ]),

? ? ? ? ? ? ? ? ? ? ? ? barBorderRadius: 11,

? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? data: res.data.datas

? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? name: "3",

? ? ? ? ? ? ? ? ? ? type: "bar",

? ? ? ? ? ? ? ? ? ? barWidth: "15%",

? ? ? ? ? ? ? ? ? ? itemStyle: {

? ? ? ? ? ? ? ? ? ? ? normal: {

? ? ? ? ? ? ? ? ? ? ? ? color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [

? ? ? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? ? ? offset: 0,

? ? ? ? ? ? ? ? ? ? ? ? ? ? color: "#248ff7",

? ? ? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? ? ? offset: 1,

? ? ? ? ? ? ? ? ? ? ? ? ? ? color: "#6851f1",

? ? ? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? ? ]),

? ? ? ? ? ? ? ? ? ? ? ? barBorderRadius: 11,

? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? data: res.data.datass

? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ],

? ? ? ? ? ? ? };

? ? ? ? ? ? var app = {

? ? ? ? ? ? ? ? currentIndex: -1,

? ? ? ? ? ? };

? ? ? ? ? ? setInterval(function () {

? ? ? ? ? ? ? ? var dataLen = option.series[0].data.length;

? ? ? ? ? ? ?

? ? ? ? ? ? ? ? // 取消之前高亮的图形

? ? ? ? ? ? ? ? myChart.dispatchAction({

? ? ? ? ? ? ? ? ? type: "downplay",

? ? ? ? ? ? ? ? ? seriesIndex: 0,

? ? ? ? ? ? ? ? ? dataIndex: app.currentIndex,

? ? ? ? ? ? ? ? });

? ? ? ? ? ? ? ? app.currentIndex = (app.currentIndex + 1) % dataLen;

? ? ? ? ? ? ? ? //console.log(app.currentIndex);

? ? ? ? ? ? ? ? // 高亮当前图形

? ? ? ? ? ? ? ? myChart.dispatchAction({

? ? ? ? ? ? ? ? ? type: "highlight",

? ? ? ? ? ? ? ? ? seriesIndex: 0,

? ? ? ? ? ? ? ? ? dataIndex: app.currentIndex,

? ? ? ? ? ? ? ? });

? ? ? ? ? ? ? ? // 显示 tooltip

? ? ? ? ? ? ? ? myChart.dispatchAction({

? ? ? ? ? ? ? ? ? type: "showTip",

? ? ? ? ? ? ? ? ? seriesIndex: 0,

? ? ? ? ? ? ? ? ? dataIndex: app.currentIndex,

? ? ? ? ? ? ? ? });

? ? ? ? ? ? }, 1000);

? ? ? ? ? ? if(option){

? ? ? ? ? ? ? ? myChart.setOption(option);

? ? ? ? ? ? }

? ? ? ? ? })

? ? ? ? }

里面的data = res.data.data的就是传入的数据。

?然后在需要的vue文件中的mounted中调用这个函数就出来了

?mounted() {

? ? ? this.echartszhexian();

? ? }

?


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #echarts动态渲染数据 #Vue