更新highcharts.js数据在“堆积的列”图表上:update()或setData()?

朝阳

我一直在尝试更新图表的数据,并且尝试了highchart的方法“ setData”和“ update”之后,我发现它们的行为有所不同(至少在这种情况下)。

在其他问题/答案中,似乎似乎更喜欢setData,甚至在文档中,它也说更新比setData“在性能上更昂贵” ...但是我无法达到相同的结果。这两种方法有什么区别?

我正在做什么:1.从JSON获取数据,映射数据以获取“类别”和“系列”数组。我最终得到这样的东西:

//categories
var categoriesFromJSON = ["source 1", "source 2"];

var initialSeriesFromJSON = [
    {name: "Data 1", data: [1000, 800]},
    {name: "Data 2", data: [800, 648]},
    {name: "Data 3", data: [600, 534]},
    {name: "Data 4", data: [400, 213]},
];
  1. 建立一个“堆积列”图表。
  2. 轮询服务器...
  3. 如果有更新的数据,请更新图表。

使用更新:

var chart = $('#graph').highcharts();
    $.each(updatedSeriesFromJSON, function(key, val){
        chart.series[key].update(val, false);
    });
    chart.redraw();

使用setData:

var chart = $('#graph').highcharts();
    $.each(updatedSeriesFromJSON, function(key, val){
        chart.series[key].setData(val, false, true, false);
    });       
    chart.redraw();

这是显示两种行为的JSFIDDLE https://jsfiddle.net/brainofjon/1vveL1gL/

在此示例中,update可以完成工作...但是我想知道为什么我不能使用setData来做同样的事情。任何输入将不胜感激。谢谢!

吉尔布里格斯

每个功能的目的不同,因此行为也不同。

以您的示例为例,您尝试setData()在序列中使用该序列,将整个序列对象作为数据发送,这就是失败的原因-使用时setData()您只需要发送数据,而不是整个序列对象。

使用您的设置更新了示例:

更改的唯一重要部分是:

//Update chart using 'setData()'
$('button#setData').click(function(){
    $.each(updatedSeriesFromJSON, function(key, val){
        chart.series[key].setData(**val.data**);
    });       
});

setData(val)setData(val.data),让你只发送数据的对象,而不是整个系列的对象。

显然,这将更快地工作,因为您只编辑数据而不是整个系列,而series.update()抓取整个系列对象并使用发送它的系列选项对其进行重建。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

更新图表中的数据,带角度的图表,highcharts-ng

来自分类Dev

Highcharts无法使用angular.js更新图表

来自分类Dev

更新angular2-highcharts数据

来自分类Dev

Highcharts-vue 无法更新数据/系列

来自分类Dev

调用series.setData时,Highcharts更新xAxis类别

来自分类Dev

Highcharts-带有堆积列的详细信息图表

来自分类Dev

HighCharts堆积的列,将Onclick事件添加到图表

来自分类Dev

Highcharts 更新图表滚动问题-滚动到初始位置

来自分类Dev

HighCharts:分组数据时更新一个点

来自分类Dev

HighCharts:分组数据时更新一个点

来自分类Dev

Highcharts实时数据更新不起作用

来自分类Dev

如何使用json更新highcharts中系列下的数据属性?

来自分类Dev

如何通过输入字段使用 React JS 更新 Highcharts

来自分类Dev

Ember Js、Ember-Highcharts 不更新对 chartData 的更改

来自分类Dev

highcharts - 复制并粘贴图表上的数据

来自分类Dev

Highcharts-使用setData()更新柱形图不起作用

来自分类Dev

如何在Highcharts中修改列堆积百分比图表

来自分类Dev

操纵数组以通过setData在highcharts上添加

来自分类Dev

在Highcharts中更新LegendItem鼠标悬停/鼠标移出时的zIndex列

来自分类Dev

在 Highcharts 上显示单个图表

来自分类Dev

每个图表上的HighCharts颜色-列范围栏

来自分类Dev

Highcharts系列动画更新

来自分类Dev

Highcharts:尝试更新系列

来自分类Dev

Highcharts和Angularjs:在主控制器中从$ broadcast更新图表不会像在图表控制器中的$ watch那样更新图表

来自分类Dev

* Highcharts *缩放选项并更新Highcharts中的值

来自分类Dev

使用变量更新Kendo Chart系列的数据会导致重绘以从图表上绘制该列

来自分类Dev

Highcharts 上数据的位置

来自分类Dev

Highcharts堆积柱线

来自分类Dev

Highcharts在图表上绘制(并删除)字形

Related 相关文章

  1. 1

    更新图表中的数据,带角度的图表,highcharts-ng

  2. 2

    Highcharts无法使用angular.js更新图表

  3. 3

    更新angular2-highcharts数据

  4. 4

    Highcharts-vue 无法更新数据/系列

  5. 5

    调用series.setData时,Highcharts更新xAxis类别

  6. 6

    Highcharts-带有堆积列的详细信息图表

  7. 7

    HighCharts堆积的列,将Onclick事件添加到图表

  8. 8

    Highcharts 更新图表滚动问题-滚动到初始位置

  9. 9

    HighCharts:分组数据时更新一个点

  10. 10

    HighCharts:分组数据时更新一个点

  11. 11

    Highcharts实时数据更新不起作用

  12. 12

    如何使用json更新highcharts中系列下的数据属性?

  13. 13

    如何通过输入字段使用 React JS 更新 Highcharts

  14. 14

    Ember Js、Ember-Highcharts 不更新对 chartData 的更改

  15. 15

    highcharts - 复制并粘贴图表上的数据

  16. 16

    Highcharts-使用setData()更新柱形图不起作用

  17. 17

    如何在Highcharts中修改列堆积百分比图表

  18. 18

    操纵数组以通过setData在highcharts上添加

  19. 19

    在Highcharts中更新LegendItem鼠标悬停/鼠标移出时的zIndex列

  20. 20

    在 Highcharts 上显示单个图表

  21. 21

    每个图表上的HighCharts颜色-列范围栏

  22. 22

    Highcharts系列动画更新

  23. 23

    Highcharts:尝试更新系列

  24. 24

    Highcharts和Angularjs:在主控制器中从$ broadcast更新图表不会像在图表控制器中的$ watch那样更新图表

  25. 25

    * Highcharts *缩放选项并更新Highcharts中的值

  26. 26

    使用变量更新Kendo Chart系列的数据会导致重绘以从图表上绘制该列

  27. 27

    Highcharts 上数据的位置

  28. 28

    Highcharts堆积柱线

  29. 29

    Highcharts在图表上绘制(并删除)字形

热门标签

归档