javascript - 谷歌折线图如何不插入缺失数据

标签 javascript google-visualization

我有一个包含一系列事件的数据库表,这些事件有它们发生的日期。现在我想显示每个月的事件数并在折线图中显示它们。 我通过 php 获取数据并使用 data.addrow 在循环中生成 js 代码

现在这工作正常,但如果有一个月没有事件,它将不会添加为一行,并且该行将简单地插入缺失的月份。 因此,例如 1 月 5 日的事件、2 月 0 日和 3 月 5 日的事件,将创建一条从 1 月到 3 月的水平线,使其看起来像是 2 月的 5 场事件。

我怎样才能让这条线在一个“空”的月份下降到零?

是否需要用空值填充空行/月?这似乎不太实用。

最佳答案

如果你想让直线下降到零,你就是在插值,只是以不同的方式。 Google 为您提供了两种处理空值 (null) 的方法,使用 interpolateNulls选项:

  1. True 将猜测介于两者之间的值(图表中的当前行为)
  2. False 将为空数据点(不是您想要的)在行中留下一个中断

要让所有空值都显示为零,您需要使用 for 循环遍历数据并将任何空值更改为 0。类似于以下代码。

for (i = 0; i < data.getNumberOfRows(); i++) {
  if ( data.getValue(1, i) == null )
    data.setValue(1, i) = 0
}

上面的代码没有测试过,不知道你的数据是怎么设置的所以没花太多时间测试(我不知道你的数据有多少列等,你可以根据需要进行调整和测试)。

关于javascript - 谷歌折线图如何不插入缺失数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15998545/

相关文章:

javascript - Vue3谷歌地图标记无法删除

charts - 如何指定谷歌饼图的大小?

javascript - 谷歌烛台图表上的多条线

html - 电子邮件图表 - 条形图、面积图和饼图

charts - Google Charts 日期轴标签不正确

javascript - 使用 React hooks 获取数据清理异步回调

javascript - 网络音频API : Prevent microphone input from being played through speakers

javascript - Vue 路由器需要重新加载页面并且看不到这个。$router

javascript - 在knockout js sortable中禁用拖放

ruby-on-rails - 使用流畅的 Bootstrap 布局重新调整谷歌图表的大小