账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    javascript - Echarts中联动和共享数据集图表中叠加了上一条的数据?
    473
    0
    var chartDom = document.getElementById('main')
    var myChart = echarts.init(chartDom)
    var option = {
        color: ['#673AB7', '#02A9F4', '#8BC34B', '#FFC109', '#F44335', '#9D27B0', '#00BCD4', '#CDDD38', '#FFEB3A', '#FF6434', '#403AB5','#2196F3','#4BAF50','#FF9800','#E92662'],
        legend: {
            icon: "circle",
            bottom: '0%'
        },
        tooltip: {
            trigger: 'axis',
            showContent: false
        },
        dataset: {
            source: res
        },
        xAxis: { 
            type: 'category',
            boundaryGap: false,
            axisLine:{
                lineStyle:{
                    color: '#C8C8C8' //x轴轴线颜色
                }
            },
            axisLabel: {
                color: '#C8C8C8',// x轴字体颜色
            }
        },
        yAxis: { 
            gridIndex: 0,
            axisLine:{
                lineStyle:{
                    color: "#C8C8C8" //x轴轴线颜色
                }
            }
        },
        grid: { 
            top: '55%' 
        },
        series: [
            {
                type: 'line',
                smooth: true,
                seriesLayoutBy: 'row',
                emphasis: { focus: 'series' }
            },
            {
                type: 'line',
                smooth: true,
                seriesLayoutBy: 'row',
                emphasis: { focus: 'series' }
            },
            {
                type: 'line',
                smooth: true,
                seriesLayoutBy: 'row',
                emphasis: { focus: 'series' }
            },
            {
                type: 'line',
                smooth: true,
                seriesLayoutBy: 'row',
                emphasis: { focus: 'series' }
            },
            {
                type: 'line',
                smooth: true,
                seriesLayoutBy: 'row',
                emphasis: { focus: 'series' }
            },
            {
                type: 'line',
                smooth: true,
                seriesLayoutBy: 'row',
                emphasis: { focus: 'series' }
            },
            {
                type: 'line',
                smooth: true,
                seriesLayoutBy: 'row',
                emphasis: { focus: 'series' }
            },
            {
                type: 'line',
                smooth: true,
                seriesLayoutBy: 'row',
                emphasis: { focus: 'series' }
            },
            {
                type: 'line',
                smooth: true,
                seriesLayoutBy: 'row',
                emphasis: { focus: 'series' }
            },
            {
                type: 'line',
                smooth: true,
                seriesLayoutBy: 'row',
                emphasis: { focus: 'series' }
            },
            {
                type: 'line',
                smooth: true,
                seriesLayoutBy: 'row',
                emphasis: { focus: 'series' }
            },
            {
                type: 'line',
                smooth: true,
                seriesLayoutBy: 'row',
                emphasis: { focus: 'series' }
            },
            {
                type: 'line',
                smooth: true,
                seriesLayoutBy: 'row',
                emphasis: { focus: 'series' }
            },
            {
                type: 'line',
                smooth: true,
                seriesLayoutBy: 'row',
                emphasis: { focus: 'series' }
            },
            {
                type: 'line',
                smooth: true,
                seriesLayoutBy: 'row',
                emphasis: { focus: 'series' }
            },
            {
                type: 'line',
                smooth: true,
                seriesLayoutBy: 'row',
                emphasis: { focus: 'series' }
            },
            {
                type: 'pie',
                id: 'pie',
                radius: '30%',
                center: ['50%', '25%'],
                emphasis: {
                focus: 'self'
            },
            label: {
                formatter: '{b}:{@[1]}人 ({d}%)',
                color: '#000000'
            },
            encode: {
                itemName: 'product',
                value: [1],
                tooltip: [1]
            }
        }]
    };
    myChart.on('updateAxisPointer', function (event) {
        // console.log('qqqqqqqqq', event)
        const xAxisInfo = event.axesInfo[0]
        if (xAxisInfo) {
            const dimension = xAxisInfo.value + 1
            myChart.setOption({
                series: {
                    id: 'pie',
                    label: {
                        formatter: '{b}: {@[' + dimension + ']}人 ({d}%)'
                    },
                    encode: {
                        value: dimension,
                        tooltip: dimension
                    }
                }
            })
        }
        myChart.setOption(option)
    })
    option && myChart.setOption(option)

    图片.png
    图片.png

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 惆怅的一颗心 普通会员 1楼
      在ECharts中,如果你发现联动或共享数据集的图表中叠加了上一条的数据,可能是因为你在更新图表数据时没有正确地清理或重置之前的数据。 例如,在使用ECharts的dataset进行数据驱动绘制图表时,如果只是简单地向dataset追加新的数据,而没有清空原有数据,那么图表就会显示所有历史数据和最新数据。 解决方法是在更新数据前先清空或替换原有的数据集: ```javascript // 假设chart是一个已经初始化过的echarts实例 // 获取当前的dataset var dataset = chart.getModel().getDataset(); // 清空原数据 dataset.source = []; // 然后添加新的数据 dataset.source.push(...yourNewData); // 调用setOption触发图表更新 chart.setOption({ dataset: dataset, // 其他需要更新的配置项... }); ``` 注意:实际使用时,请根据你的实际情况获取和设置dataset。同时,如果你有多个series依赖于同一个dataset,那么在更新dataset后,所有相关的series都会自动反映最新的数据变化。
    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部