echarts的tooltip里面内嵌echarts图

本文介绍如何在ECharts的tooltip提示框中内嵌一个小的ECharts图表,实现更丰富的交互效果。通过Vue.js框架进行动态数据绑定,使得内嵌图表能够根据鼠标悬停的数据实时更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<template>
    <div class="ChartView">
        <div ref="charts" class="charts"></div>
    </div>
</template>
<script>

export default {
  name: 'ChartView',
  components:{
  },
   data(){
        return {
            
        }
    },
    methods:{
        initEcharts(){
            let that=this;
            let option = {
                tooltip : {
                        trigger: 'item',
                        enterable: true,
                        backgroundColor:'rgba(0,0,0,0)',
                        className:'tooltipItemBox',
                        //设置自定义tooltip,并设置回调函数
                        formatter:function(params, ticket, callback){
                            const div=`<div ref="tooltipItem" class="tooltipItem" id="tooltipItem" style='width:480px;height:280px;'>${params.data.name}</div>`
                            callback(that.setEcharts(params));
                            return div
                        } ,
                    },
                xAxis: {
                    type: 'category',
                    data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
                },
                yAxis: {
                    type: 'value'
                },
                series: [
                    {
                    data: [820, 932, 901, 934, 1290, 1330, 1320],
                    type: 'line',
                    smooth: true
                    }
                ]
            };
            let myChart = this.$echarts.init(this.$refs.charts);
            myChart.clear();
            myChart.setOption(option)
        },
        setEcharts(){
            this.$nextTick(()=>{//然后setoption方法生成,记住这里一定要用$nextTick不然你拿不到dom节点
                let option = {
                    xAxis: {
                        type: 'category',
                        data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
                    },
                    backgroundColor:'#fff',
                    yAxis: {
                        type: 'value'
                    },
                    series: [
                        {
                        data: [120, 200, 150, 80, 70, 110, 130],
                        type: 'bar'
                        }
                    ]
                };
                let myChart1 = this.$echarts.init(document.getElementById("tooltipItem"));
                myChart1.clear();
                myChart1.setOption(option)
            })
        }
    },
    created(){
        
    },
    mounted() {
        this.initEcharts()
    }
  
}
</script>
<style lang="scss" scoped>
.ChartView{
    width:100%;
    height: 100%;
    .charts{
        width: 800px;
        height: 800px;
        margin: 200px;
    }
}
</style>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值