ECharts多图共享一个dataset(带有联动交互)

ECharts多图共享一个dataset

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>多图表共享一个dataset,并带有联动交互</title>
    <!--引入Echarts文件-->
    <script src="js/echarts.min.js"></script>
</head>
<body>
<div id="main" style="width: 800px;height:400px;"></div>
<script type="text/javascript">
    var dom=document.getElementById("main");
    var myChart=echarts.init(dom);
    var app={};
    var option=null;


    setTimeout(function () {
        option = {
            legend: {},
            tooltip: {
                trigger: 'axis',//触发类型,'axis'为坐标系触发
                showContent: false//是否显示提示框浮层
            },
            dataset: {
                source: [
                    ['product', '2012', '2013', '2014', '2015', '2016', '2017'],
                    ['Matcha Latte', 41.1, 30.4, 65.1, 53.3, 83.8, 98.7],
                    ['Milk Tea', 86.5, 92.1, 85.7, 83.1, 73.4, 55.1],
                    ['Cheese Cocoa', 24.1, 67.2, 79.5, 86.4, 65.2, 82.5],
                    ['Walnut Brownie', 55.2, 67.1, 69.2, 72.4, 53.9, 39.1]
                ]
            },
            xAxis: {type: 'category'},
            yAxis: {gridIndex: 0},//y轴所在的grid的索引
            grid: {top: '55%'},
            series: [
                //smooth:是否平滑曲线显示,若是boolean属性,表示开启平滑处理,若是number类型(取直范围0到1)
                //则表示平滑程度,越小表示越接近折线段
                //seriesLayoutBy:'row'表示dataset中每一行是一个维度(dimension)
                {type: 'line', smooth: true, seriesLayoutBy: 'row'},
                {type: 'line', smooth: true, seriesLayoutBy: 'row'},
                {type: 'line', smooth: true, seriesLayoutBy: 'row'},
                {type: 'line', smooth: true, seriesLayoutBy: 'row'},
                {
                    type: 'pie',
                    id: 'pie',  //组件ID
                    radius: '30%',  //饼图的半径
                    //center:饼圆的中心(圆心)坐标,第一项是横坐标,第二项是纵坐标
                    //设置成百分比时第一项是相对于容器宽度,第二项是相对于容器高度。
                    center: ['50%', '25%'],
                    label: {
                        formatter: '{b}: {@2012} ({d}%)'
                    },
                    encode: {
                        itemName: 'product',
                        value: '2012',
                        tooltip: '2012'
                    }
                }
            ]
        };

        myChart.on('updateAxisPointer', function (event) {
            var xAxisInfo = event.axesInfo[0];
            if (xAxisInfo) {
                var dimension = xAxisInfo.value + 1;
                myChart.setOption({
                    series: {
                        id: 'pie',
                        label: {
                            formatter: '{b}: {@[' + dimension + ']} ({d}%)'
                        },
                        encode: {
                            value: dimension,
                            tooltip: dimension    //表示维度在tooltip(提示框组件)中显示
                        }
                    }
                });
            }
        });

        myChart.setOption(option);
    });
   /* if (option && typeof option === "object") {
        myChart.setOption(option, true);
    }*/
</script>
</body>
</html>

在这里插入图片描述

posted @   别团等shy哥发育  阅读(24)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示