热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Highcharts:如何使用setData添加系列

如何解决《Highcharts:如何使用setData添加系列》经验,为你挑选了1个好方法。

我有一个气泡图,可以使用jQuery UI滑块来更改图形的内容.("通过时间")但是,图表上的气泡可以按周进入和退出图表,当使用setData进行更新时,它会忽略最初不存在的任何新系列.我的代码:

series: [{ name: 'hidden',showInLegend: false, enableMouseTracking: false, marker: { lineColor:'rgba(255,255,255,0)', fillColor: 'rgba(255,255,255,0)', fillOpacity: 0 },
                   data: [{x:0,y:0,z:0, zz:0}]

        },{ name: 'bubble 2',showInLegend: false,
                   marker: { lineColor:'black', fillColor: { radialGradient: {cx: 0.4,cy: 0.3,r: 0.7}, stops: [ [0, 'green'], [1, 'white'] ] } },
                   data: [{x:11,y:10,z:5, zz:0}]

        },{ name: 'bubble 3',showInLegend: false,
                   marker: { lineColor:'black', fillColor: { radialGradient: {cx: 0.4,cy: 0.3,r: 0.7}, stops: [ [0, 'red'], [1, 'white'] ] } },
                   data: [{x:100,y:100,z:77, zz:0}]
        }]

如果我把setData放入:

newSeries[0] = [{x:0,y:0,z:0.0000000000},
{x:9,y:13,z:1,name: 'hello', marker: { fillColor: { radialGradient: {cx: 0.4,cy: 0.3,r: 0.7}, stops: [ [0, 'green'], [1, 'white'] ] } }},
{x:23,y:23,z:6,name: 'hello2', marker: { fillColor: { radialGradient: {cx: 0.4,cy: 0.3,r: 0.7}, stops: [ [0, 'green'], [1, 'white'] ] } }},
{x:23,y:49,z:6,name: 'hello3', marker: { fillColor: { radialGradient: {cx: 0.4,cy: 0.3,r: 0.7}, stops: [ [0, 'green'], [1, 'white'] ] } }},
{x:24,y:24,z:2,name: 'hello4', marker: { fillColor: { radialGradient: {cx: 0.4,cy: 0.3,r: 0.7}, stops: [ [0, 'green'], [1, 'white'] ] } }}];

hello3和hello4完全被忽略.你可以在这里看到一个小提琴,不是我的图表,而是一个可以证明这个问题的小提琴:http://jsfiddle.net/ruchitrami/YUa3R/1/

如果添加chart.series[3].setData([4, 4, 4, 3, 3]);到该图表的按钮,则会被忽略.

我们需要使用单独的系列,因为使用一个系列并更新数据不够灵活,无法通过setData进行更改.例如,我们需要按周更改图表中气泡的颜色.每个系列只有一个数据点.

如果我手动添加一些"虚拟"系列到初始调用,它完美地工作.我只需要Highcharts接受这些系列而不需要声明它们.(因为气泡按周进入/退出)另外,我不确定为什么setData不接受我在新系列上的"hello1,hello2"名称...如果有人知道的话.



1> wergeld..:

那是因为它试图设置一个不存在的系列数据.如果添加setData行,则会出现此错误:

未捕获的TypeError:无法读取未定义的属性"setData"

相反,您想通过以下方式添加新系列chart.addSeries():

$('#button').click(function () {
        chart.series[0].setData([10, 10, 10, 10, 10],false);
        chart.series[1].setData([5, 5, 5, 5, 5],false);
        chart.series[2].setData([4, 4, 4, 4, 4],false);
        chart.addSeries({
            data: [4, 4, 4, 3, 3]
        });
    });
});


推荐阅读
author-avatar
蓝色调调2502937087
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有