【问题标题】:Getting Cannot read property 'x' of null with google charts LineChart使用谷歌图表 LineChart 无法读取 null 的属性“x”
【发布时间】:2013-11-21 13:32:51
【问题描述】:

我有一个谷歌图表,当我将鼠标悬停在图例标签上时,一直显示无法读取 null 的属性“x”,我不知道为什么。

所有数据都是来自 ajax get 的 json 格式,并且是有效的 json,其中没有空值。

代码是这样的:

var dt = new google.visualization.DataTable(data[4]);

var options = {
    vAxes: { 0: { logScale: false, title: 'Cash' } },
    xAxes: { 0: { logScale: false, title: 'Months' } }
};

var chart = new google.visualization.LineChart(document.getElementById("chart_fullsite_cash"));                        chart.draw(dt, options);

而data[4]中的json是这样的:

{
   "cols":[
      {
         "type":"date",
         "id":"Month",
         "label":"Month"
      },
      {
         "type":"number",
         "id":"1",
         "label":"label1"
      },
      {
         "type":"number",
         "id":"2",
         "label":"label2"
      },
      {
         "type":"number",
         "id":"3",
         "label":"label3"
      },
      {
         "type":"number",
         "id":"4",
         "label":"label4"
      },
      {
         "type":"number",
         "id":"5",
         "label":"label5"
      },
      {
         "type":"number",
         "id":"6",
         "label":"label6"
      }
   ],
   "rows":[
      {
         "c":[
            {
               "v":"Date(2012, 7, 31)",
               "f":"Aug 2012"
            },
            {
               "v":3937.78,
               "f":"$3,937.78"
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            }
         ]
      },
      {
         "c":[
            {
               "v":"Date(2012, 7, 31)",
               "f":"Aug 2012"
            },
            {
               "v":0
            },
            {
               "v":348800,
               "f":"$348,800.00"
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            }
         ]
      },
      {
         "c":[
            {
               "v":"Date(2012, 7, 31)",
               "f":"Aug 2012"
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":4085.71,
               "f":"$4,085.71"
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            }
         ]
      },
      {
         "c":[
            {
               "v":"Date(2012, 7, 31)",
               "f":"Aug 2012"
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":2332.41,
               "f":"$2,332.41"
            },
            {
               "v":0
            },
            {
               "v":0
            }
         ]
      },
      {
         "c":[
            {
               "v":"Date(2012, 8, 30)",
               "f":"Sep 2012"
            },
            {
               "v":32796.06,
               "f":"$32,796.06"
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            }
         ]
      },
      {
         "c":[
            {
               "v":"Date(2012, 8, 30)",
               "f":"Sep 2012"
            },
            {
               "v":0
            },
            {
               "v":1432204.38,
               "f":"$1,432,204.38"
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            }
         ]
      },
      {
         "c":[
            {
               "v":"Date(2012, 8, 30)",
               "f":"Sep 2012"
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":30211.84,
               "f":"$30,211.84"
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            }
         ]
      },
      {
         "c":[
            {
               "v":"Date(2012, 8, 30)",
               "f":"Sep 2012"
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":26478.86,
               "f":"$26,478.86"
            },
            {
               "v":0
            },
            {
               "v":0
            }
         ]
      },
      {
         "c":[
            {
               "v":"Date(2012, 9, 31)",
               "f":"Oct 2012"
            },
            {
               "v":34074.92,
               "f":"$34,074.92"
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            }
         ]
      },
      {
         "c":[
            {
               "v":"Date(2012, 9, 31)",
               "f":"Oct 2012"
            },
            {
               "v":0
            },
            {
               "v":1589939.79,
               "f":"$1,589,939.79"
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            }
         ]
      },
      {
         "c":[
            {
               "v":"Date(2012, 9, 31)",
               "f":"Oct 2012"
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":52323.63,
               "f":"$52,323.63"
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            }
         ]
      },
      {
         "c":[
            {
               "v":"Date(2012, 9, 31)",
               "f":"Oct 2012"
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":33100.46,
               "f":"$33,100.46"
            },
            {
               "v":0
            },
            {
               "v":0
            }
         ]
      },
      {
         "c":[
            {
               "v":"Date(2012, 10, 30)",
               "f":"Nov 2012"
            },
            {
               "v":13243.12,
               "f":"$13,243.12"
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            }
         ]
      },
      {
         "c":[
            {
               "v":"Date(2012, 10, 30)",
               "f":"Nov 2012"
            },
            {
               "v":0
            },
            {
               "v":451904.1,
               "f":"$451,904.10"
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            }
         ]
      },
      {
         "c":[
            {
               "v":"Date(2012, 10, 30)",
               "f":"Nov 2012"
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":7315,
               "f":"$7,315.00"
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            }
         ]
      },
      {
         "c":[
            {
               "v":"Date(2012, 10, 30)",
               "f":"Nov 2012"
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":11641.52,
               "f":"$11,641.52"
            },
            {
               "v":0
            },
            {
               "v":0
            }
         ]
      },
      {
         "c":[
            {
               "v":"Date(2012, 10, 30)",
               "f":"Nov 2012"
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0,
               "f":"$0.00"
            },
            {
               "v":0
            }
         ]
      },
      {
         "c":[
            {
               "v":"Date(2013, 2, 31)",
               "f":"Mar 2013"
            },
            {
               "v":0
            },
            {
               "v":236,
               "f":"$236.00"
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            }
         ]
      },
      {
         "c":[
            {
               "v":"Date(2013, 9, 31)",
               "f":"Oct 2013"
            },
            {
               "v":0
            },
            {
               "v":1010,
               "f":"$1,010.00"
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            }
         ]
      },
      {
         "c":[
            {
               "v":"Date(2013, 10, 30)",
               "f":"Nov 2013"
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":0
            },
            {
               "v":21216.01,
               "f":"$21,216.01"
            }
         ]
      }
   ]
}

我不知道发生了什么..如果我将日期列更改为字符串类型,那么它工作正常,但图形从根本上改变了它的形状。

【问题讨论】:

  • 好吧,你发现了一个错误(我已经提交了)。我们认为这是由您的数据中重复的日期条目引起的。你能告诉我更多关于你的数据吗?也许我们可以对数据进行一些处理,所以这不是问题。
  • 更多是什么意思?...图形必须显示在横轴日期和纵轴现金金额。每列一行(在日期列之后)。我认为这是因为重复的日期确实是一个错误。

标签: javascript json charts google-visualization


【解决方案1】:

我不确定到底发生了什么,但我在您的数据中看到您有多个具有相同日期的行,例如:

{"c":[{"v":"Date(2012, 7, 31)","f":"Aug 2012"},{"v":3937.78,"f":"$3,937.78"},{"v":0},{"v":0},{"v":0},{"v":0},{"v":0}]},
{"c":[{"v":"Date(2012, 7, 31)","f":"Aug 2012"},{"v":0},{"v":348800,"f":"$348,800.00"},{"v":0},{"v":0},{"v":0},{"v":0}]},
{"c":[{"v":"Date(2012, 7, 31)","f":"Aug 2012"},{"v":0},{"v":0},{"v":4085.71,"f":"$4,085.71"},{"v":0},{"v":0},{"v":0}]},
{"c":[{"v":"Date(2012, 7, 31)","f":"Aug 2012"},{"v":0},{"v":0},{"v":0},{"v":2332.41,"f":"$2,332.41"},{"v":0},{"v":0}]},

当我在每个日期删除额外的行时,问题就消失了。您使用这种结构的目标是什么?看起来您正在尝试在图表中创建列,您可以使用 ColumnChart(或 ComboChart,如果您想将列和线放在一起)来完成。

【讨论】:

  • 就像我对 Jeremy Faller 所说的那样,我认为这是谷歌图表中的一个错误。希望能找到解决办法。
  • 这可能是一个错误,但我仍然认为可能有更好的方法来组织您的数据以获得您想要的效果(并且作为额外的奖励,您必须等待错误被固定)。在同一轴值处有多行在这里有什么作用?
  • 正如我所说,Phoenix_uy,你说得对,这是一个错误,我已经提交了它,我们将优先修复它。 :) ASGallant 更准确地描述了我的意思。您的数据结构有点奇怪。如果您能告诉我们更多关于为什么重复的信息,我们可以查明真相并为您提供帮助。
  • 除此之外是一个错误,我只是更改了数据在 json 中的填充方式,现在我按日期对“现金”列进行分组,现在我在每个“现金”数据上都有一个日期和没关系
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-28
  • 2018-04-18
  • 1970-01-01
  • 1970-01-01
  • 2017-11-10
  • 2017-04-03
相关资源
最近更新 更多