一个页面实现多个echarts图表

下拉多选参数,拿到返回值后渲染各个参数的图表。
请问如何实现多个图表?需要动态生成多个div ,每个div绑定一个图表吗?

阅读 6.7k
3 个回答

一个div就可以,直接上option

option = {
    title: [
        {
        text:"产量",
        left:"23%"
    },
     {
        text:"仓储",
        left:"23%",
        top:"51%"
    },
    {
        text:"开工率",
        top:"51%",
        right:"23%"
    },
    
    ],
    dataZoom: [
            {
            xAxisIndex: 0,
            type: 'slider',
            show: true,
            height: 20,
            width:"25%",
            left:"13%",
            top:"42%",
            start: 50,
            end: 100,
            textStyle: {
                color: '#FF0000',
                fontSize: 11,
            }
            },
            {
            xAxisIndex: 1,
            type: 'slider',
            show: true,
            height: 20,
            right: '14%',
            width:"25%",
            start: 50,
            end: 100,
            textStyle: {
                color: '#FF0000',
                fontSize: 11,
            }
            },
            {
          xAxisIndex: 2,
            type: 'slider',
            show: true,
            width:"25%",
            left:"13%",
            height: 20,
            start: 50,
            end: 100,
            textStyle: {
                color: '#FF0000',
                fontSize: 11,
            }
            }, ],

    tooltip: {
            trigger: 'axis'
    },
    grid: [
        {x: '7%', y: '7%', width: '38%', height: '38%'},
        {x2: '7%', y: '58%', width: '38%', height: '38%'},
        {x: '7%', y2: '4%', width: '38%', height: '38%'},
    ],
    legend:{
            type: "scroll",
            orient: "vertical",
            right:"20%",
            top: "6%",
    },
    xAxis: [
        {   gridIndex: 0,
            type: 'category',
            data: ["2018年4月","2018年5月"]
        },
        {   gridIndex: 1,
            type: 'category',
            offset:-120,
            data: ["2018年4月","2018年5月"]
        },
        {   gridIndex: 2,
            type: 'category',
            data: ["2018年4月","2018年5月"]
        },
    ],
    yAxis: [
        {   gridIndex: 0, 
            type: 'value',
            name: "万吨",
           
        },
        {   gridIndex: 1, 
            type: 'value',
             axisLabel: {
            formatter: "{value} %"
          }
        },
        {   gridIndex: 2, 
            type: 'value',
            name: "万吨"
        },
    ],
   
    series: [
        {
            name:"济南华阳炭素有限公司",
            type: 'bar',
            xAxisIndex: 0,
            yAxisIndex: 0,
            data:  [1.2, 1.2],
        },
        {
            name:"济南万瑞炭素有限责任公司",
            type: 'bar',
            xAxisIndex: 0,
            yAxisIndex: 0,
            data:  [4, 4],
        },
        {
            name:"济南龙山炭素有限公司",
            type: 'bar',
            xAxisIndex: 0,
            yAxisIndex: 0,
            data: [2.4, 2.4],
        },
        {
            name:"德州欧莱恩永兴碳素有限公司",
            type: 'bar',
            xAxisIndex: 0,
            yAxisIndex: 0,
            data: [0.67, 0.5],
        },
        {
            name:"济南华阳炭素有限公司",
            type: 'line',
            xAxisIndex: 1,
            yAxisIndex: 1,
            data:[47, 91.67]
                
        },
        {
            name:"济南万瑞炭素有限责任公司",
            type: 'line',
            xAxisIndex: 1,
            yAxisIndex: 1,
            data:[84, 84]
                
        },
        {
            name:"济南龙山炭素有限公司",
            type: 'line',
            xAxisIndex: 1,
            yAxisIndex: 1,
            data:[70, 80]
                
        },
        {
            name:"德州欧莱恩永兴碳素有限公司",
            type: 'line',
            xAxisIndex: 1,
            yAxisIndex: 1,
            data:[90, 90]
                
        },
        {
            name:"济南华阳炭素有限公司",
            type: 'line',
            xAxisIndex: 2,
            yAxisIndex: 2,
            data:[0.8, 0.8]
                
        },
        {
            name:"济南万瑞炭素有限责任公司",
            type: 'line',
            xAxisIndex: 2,
            yAxisIndex: 2,
            data:[3.2, 3.2]
                
        },
        {
            name:"济南龙山炭素有限公司",
            type: 'line',
            xAxisIndex: 2,
            yAxisIndex: 2,
            data:[2.2, 2.2]
                
        },
        {
            name:"德州欧莱恩永兴碳素有限公司",
            type: 'line',
            xAxisIndex: 2,
            yAxisIndex: 2,
            data:[1.2, 1.2]
                
        }
        
    ]
};

1、多个div,每个div都是一个图表
2、一个div,一个图表,但是分多个grid

直接使用 echarts 实例的 setOption 方法

https://echarts.apache.org/zh...

大概思路

const echarts = new Echarts(xxx)

//处理数据 1
const option1 = {...}
echarts.setOption(option1,{notMerge:true}) // 此处 notMerge 一定要为 true 即不合并之前的配置项

//处理数据 2
cosnt option2 = {...}
echarts.setOption(option1,{notMerge:true}) // 此处 notMerge 一定要为 true 即不合并之前的配置项

依次类推,每次下拉框变化数据 请求完数据 就处理一遍数据 然后重新 setOption

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题