Echarts实现图表联动(多图联动、图表间联动)

61 篇文章 0 订阅
23 篇文章 0 订阅

效果如图

在这里插入图片描述

本实例代码


function loadBlock9() {
    var myChart1 = echarts.init(document.getElementById("block9"));

    var myChart2 = echarts.init(document.getElementById("block10"));

    //series中的每一个label设置
    var labelOption = {
        normal: {
            show: true,
            position: 'top',
            distance: '10',
            align: 'left',
            verticalAlign: 'middle',
            rotate: 0,
            // formatter: '{c}  {name|{a}}',
            formatter: '{c}',
            color: "#fff",
            fontSize: 10,
            rich: {
                name: {
                    textBorderColor: '#fff'
                }
            }
        }
    };

    //13. 新技术重要程度评价
    var option1 = {
        title: {
            text: "新技术重要程度评价",
            left: "center",
            top: 10,
            textStyle: {
                fontSize: 18,
                fontWeight: 'normal',
                color: "#fff"
            }
        },
        grid: {
            //调整图的位置等
            borderWidth: 0,
            top: 40,
            left: 20,
            bottom: 25,
            right: 0,
            textStyle: {
                color: "#f00"
            },
            width: '75%',
        },
        legend: {
            show: false,
            // top: 30,
            // textStyle: {//图例文字的样式
            //     color: '#dbdbdb',
            //     fontSize: 15
            // },
            // data: ['良种繁育技术', '提高品质良种技术', '病虫害防控技术', '优质高效栽培技术'],
            selectedMode: 'single', // 设置单选多选模式
            // selected: { // 设置默认不显示
            //     '良种繁育技术': false,
            //     '提高品质良种技术': false,
            //     '病虫害防控技术': false
            // },
        },
        // color: ['#FFF200', '#22B14C', '#00A2E8', '#3F48CC', '#A349A4', '#E7B9C0', '#C8EFD4', '#ff5b00', '#ED1C24', '#3F48CC'],
        color: ['#E7B9C0', '#C8EFD4', '#ff5b00', '#ED1C24', '#3F48CC', '#FFF200', '#22B14C', '#00A2E8', '#3F48CC', '#A349A4'],
        tooltip: {
            trigger: 'axis',
            axisPointer: {
                type: 'shadow'
            }
        },
        // textStyle: {//图例文字的样式
        //     color: '#dbdbdb',
        //     fontSize: 200
        // },
        calculable: true,
        xAxis: [
            {
                type: 'value',
                axisLine: {
                    //y轴线
                    lineStyle: {
                        color: '#fff'
                    }
                },
                splitLine: {
                    //坐标轴线上方的那些
                    show: false,
                    lineStyle: {
                        color: ['#aaa', '#ddd']
                    }
                },
                inverse: true,
            }
        ],
        yAxis: [
            {
                type: 'category',
                axisTick: { show: false },
                // data: ['非常重要', '比较重要', '一般', '不重要', '非常不重要'],
                axisLine: {
                    //x轴线
                    lineStyle: {
                        color: '#fff'
                    }
                },
                axisLabel: {
                    // 设置坐标的值的字体等
                    fontSize: 13,
                    interval: 0,
                    // formatter: function (value) {
                    //     //x轴的文字改为竖版显示
                    //     var str = value.split("");
                    //     return str.join("\n");
                    // }
                },
                position: 'right',
            }

        ],
        series: [
            // {
            //     name: '良种繁育技术',
            //     type: 'bar',
            //     barGap: 0,
            //     label: labelOption,
            //     data: [320, 332, 301, 334, 390]
            // },
            // {
            //     name: '提高品质良种技术',
            //     type: 'bar',
            //     label: labelOption,
            //     data: [220, 182, 191, 234, 290]
            // },
            // {
            //     name: '病虫害防控技术',
            //     type: 'bar',
            //     label: labelOption,
            //     data: [150, 232, 201, 154, 190]
            // },
            // {
            //     name: '优质高效栽培技术',
            //     type: 'bar',
            //     label: labelOption,
            //     data: [98, 77, 101, 99, 40]
            // }
        ]
    };;
    myChart1.setOption(option1);

    $.ajax({
        url: bigApi.importanceOfNewTechnologies,
        // url: '../../data/index1-block7.json',
        dataType: "json"
    }).done(function () {
        $("#block7").addClass("chart-done");
    }).done(function (back) {
        var data = back.result;

        var legendName = [];// 图例的名称
        var legendSelected = {};//图例选中否?
        var xAxisD = [];//x轴的名称
        var series = []; //数据列
        data[0].value.forEach(function (val, key) {
            xAxisD.push(val.name);
        })
        data.forEach(function (val, key) {
            // debugger
            //每一个数据列
            var x = {
                type: 'bar',
                label: labelOption,
                barMaxWidth: "40%",
                barMinHeight: 5,
                label: {
                    show: false,
                    position: 'left',
                    color: "#fff"
                }
            };
            x.name = val.name;
            x.data = [];
            val.value.forEach(function (sec, key) {
                x.data.push(sec.value);
            })
            series.push(x);
            legendName.push(val.name);
            if (key != 0) {
                legendSelected[val.name] = false;
            }
        })
        myChart1.setOption({
            legend: {
                data: legendName,
                selected: legendSelected,
            },
            series: series,
            yAxis: {
                data: xAxisD
            }
        });

    }).fail(function (jqXHR) {
        console.log("Ajax Fail: ", jqXHR.status, jqXHR.statusText);
    });









    //12. 现有技术评价
    var option2 = {
        title: {
            text: "现有技术评价",
            left: "center",
            top: 10,
            textStyle: {
                fontSize: 18,
                fontWeight: 'normal',
                color: "#fff"
            }
        },
        grid: {
            //调整图的位置等
            borderWidth: 0,
            top: 40,
            left: 80,
            bottom: 25,
            right: '0%',
            textStyle: {
                color: "#f00"
            },
            width: '50%',

        },
        legend: {
            top: 'center',
            right: 0,
            type: 'scroll',
            orient: 'vertical',
            textStyle: {//图例文字的样式
                color: '#dbdbdb',
                fontSize: 15
            },
            // data: ['良种繁育技术', '提高品质良种技术', '病虫害防控技术', '优质高效栽培技术'],
            selectedMode: 'single', // 设置单选多选模式
            // selected: { // 设置默认不显示
            //     '良种繁育技术': false,
            //     '提高品质良种技术': false,
            //     '病虫害防控技术': false
            // },
        },
        color: ['#E7B9C0', '#C8EFD4', '#ff5b00', '#ED1C24', '#3F48CC', '#FFF200', '#22B14C', '#00A2E8', '#3F48CC', '#A349A4'],
        tooltip: {
            trigger: 'axis',
            axisPointer: {
                type: 'shadow'
            }
        },
        // textStyle: {//图例文字的样式
        //     color: '#dbdbdb',
        //     fontSize: 200
        // },
        calculable: true,
        xAxis: [
            {
                type: 'value',
                axisLine: {
                    //y轴线
                    lineStyle: {
                        color: '#fff'
                    }
                },
                splitLine: {
                    //坐标轴线上方的那些
                    show: false,
                    lineStyle: {
                        color: ['#aaa', '#ddd']
                    }
                },
                // inverse: true,

            }

        ],
        yAxis: [
            {
                type: 'category',
                axisTick: { show: false },
                // data: ['非常重要', '比较重要', '一般', '不重要', '非常不重要'],
                axisLine: {
                    //x轴线
                    lineStyle: {
                        color: '#fff'
                    }
                },
                axisLabel: {
                    // 设置坐标的值的字体等
                    fontSize: 13,
                    interval: 0,
                    // formatter: function (value) {
                    //     //x轴的文字改为竖版显示
                    //     var str = value.split("");
                    //     return str.join("\n");
                    // }
                },
                // inverse: true,
            }
        ],
        series: [
            // {
            //     name: '良种繁育技术',
            //     type: 'bar',
            //     barGap: 0,
            //     label: labelOption,
            //     data: [320, 332, 301, 334, 390]
            // },
            // {
            //     name: '提高品质良种技术',
            //     type: 'bar',
            //     label: labelOption,
            //     data: [220, 182, 191, 234, 290]
            // },
            // {
            //     name: '病虫害防控技术',
            //     type: 'bar',
            //     label: labelOption,
            //     data: [150, 232, 201, 154, 190]
            // },
            // {
            //     name: '优质高效栽培技术',
            //     type: 'bar',
            //     label: labelOption,
            //     data: [98, 77, 101, 99, 40]
            // }
        ]
    };;
    myChart2.setOption(option2);
    $.ajax({
        url: bigApi.evaluationOfExistingTechnologies,
        // url: '../../data/index1-block1.json',
        dataType: "json"
    }).done(function () {
        $("#block7").addClass("chart-done");
    }).done(function (back) {
        var data = back.result;
        // console.log("1111");
        // console.log(data)

        var legendName = [];// 图例的名称
        var legendSelected = {};//图例选中否?
        var xAxisD = [];//x轴的名称
        var series = []; //数据列
        data[0].value.forEach(function (val, key) {
            xAxisD.push(val.name);
        })
        data.forEach(function (val, key) {
            // debugger
            //每一个数据列
            var x = {
                type: 'bar',
                label: labelOption,
                barMaxWidth: "40%",
                barMinHeight: 5,
                label: {
                    show: false,
                    position: 'right',
                    color: "#fff"
                }
            };
            x.name = val.name;
            x.data = [];
            val.value.forEach(function (sec, key) {
                x.data.push(sec.value);
            })
            series.push(x);
            legendName.push(val.name);
            if (key != 0) {
                legendSelected[val.name] = false;
            }
        })
        // console.log(series);
        myChart2.setOption({
            legend: {
                data: legendName,
                selected: legendSelected,
            },
            series: series,
            yAxis: {
                data: xAxisD
            }
        });

    }).fail(function (jqXHR) {
        console.log("Ajax Fail: ", jqXHR.status, jqXHR.statusText);
    });



    //联动
    echarts.connect([myChart1, myChart2]);
}

图表实现联动的关键代码echarts.connect([myChart1, myChart2]);

注意:两个图表的数据源中,用于分类的数据要一致!

参考资料

echarts. connect方法

Echarts实现图表联动(多图联动、图表间联动)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值