【问题标题】:Google chart - remove rows from data.cache JSFiddle谷歌图表 - 从 data.cache JSFiddle 中删除行
【发布时间】:2020-11-30 10:48:12
【问题描述】:

任务是在谷歌图表中只显示最后 5 条记录。当您移动滑块时,数据正在添加。 记录来自一些“滑块”,稍后将替换为一些实时传感器数据。

hAxis 是时间戳所以我不知道怎么用:

 viewWindowMode: 'explicit',
                // viewWindow: {
                //   min: 0,
                //   max: 4
                // },

问题是如何从数据缓存中删除行?

JSFiddle:https://jsfiddle.net/ejovrh2/k59u6be3/17/

【问题讨论】:

    标签: charts google-visualization


    【解决方案1】:

    在 x 轴上使用时间戳时,
    您可以直接使用日期对象,无需转换为字符串。

    var data = google.visualization.arrayToDataTable([
      ["Date", "level"],
      [new Date(), level],
    ]);
    

    并且要控制 x 轴上显示的范围,
    viewWindow min & max 应该是相同的数据类型。
    在这种情况下,是一个日期。

    viewWindow: {
      min: new Date(2020, 10, 1),
      max: new Date(2020, 10, 30)
    },
    

    【讨论】:

    • 好的,这是原则。但是.. 目标是显示最后 5 条记录,将来不知道传感器多久会抛出一次数据,所以我不能用日期或时间限制窗口(我可以做一些像现在最大值和最小值现在的事情 - x 天)。所以导致我的小提琴是某种类型的数组,我需要删除第一条记录。
    • 您可以使用数据表方法getColumnRange从数据表中确定最小和最大日期...
    • 我得到了结果对象对象...无论如何感谢您的时间。我明天试试。
    • 是的,该方法返回一个对象,具有最小值和最大值的属性。 here is an example 使用方法...
    【解决方案2】:

    正如@WhiteHat 所说,您可以使用 data.getColumnRange 然后提取 min&max。

    就我而言,无论日期如何,我都只需要显示最后几条记录。 所以我需要这部分代码:

    data.removeRow(0); 
    

    回答

        // when data is populated with 4 rows, remove first one [0]
        if (data.cache.length>4){
        data.removeRow(0); 
       // just to see range and how is removing first element
        var dateRange = data.getColumnRange(0);
        console.log(dateRange);
        }
    

    芬兰语fiddle

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-11
      • 1970-01-01
      • 2011-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多