我在用着 高尚 (链接到特定的演示 - 单击视图选项以比较下面的代码)以渲染一些数据以供个人使用。

注意:这几乎肯定是一个与我相关的错误,所以我并不是要暗示HighCharts有错 - 这确实是一个很棒的API!

设置 系列 图表对象的字段,我遇到了奇怪的数组切片。

例如,这正常工作:

series: [{
    name: 'seriesName',
    data: [22, 24, 15]
}]

并用值22、24和15绘制了三个数据点。

然而,

series: [{
    name: 'sillySeries',
    data: chartData[0]
}]

以2、4和5的值渲染3点,分别为2、2和1的标题……也就是说,它将数组条目分为标题,然后将两位数数字的值分开。

console.log向我展示了ChartData看起来像

22,24,15,2010-9,2010-10,2010-11 

(3个月3个值)

尽管实际阵列更像[22,24,15] [2010-9,2010-10,2010-11

我的2D阵列 chartData[][][column][row] 数据的索引,我发现要求 chartData[0] 会返回数组。

也许我的问题应该是:如何从2D数组表示中返回1D数组以在JavaScript对象中设置属性/值?似乎我可能忽略了一些非常明显的东西。


编辑:

data: [24]

在24点绘制了一分,真棒。

data: '24'

将数据分为标题,然后价值,有效地绘制一个点为4而不是24。

因此,当我尝试将数组传递到 数据 场地。我能做的任何方式喜欢string.toarray吗?


编辑2:

chartData[col][row] 被声明为一个空数组

var chartData = [];

随后通过在HTML表的行和列上迭代填充值,其中最内向的循环内容看起来像

chartData[cellIndex][rowIndex] = $(currentCell).text();
有帮助吗?

解决方案 2

Parseint()保存了一天。

就像是

for (i=0; i<chartData[0].length; ++i) {
    columnOne.push(parseInt(chartData[0][i]);
}

给了我一个数组

data: columnOne

或更是如此

Chart1.Series [0] .data = columnone;

谢谢詹姆斯指出的

尽管ChartData可能是一个数组,但听起来像ChartData [0]是字符串。

这导致我发现我的数组中的数据实际上是所有字符串,因为某些字段是字符串,有些是日期(yyyy-mm-dd),而有些只是INT,所以我一直以这种方式保留。

非常感谢你们两个=)

其他提示

尽管ChartData可能是一个数组,但听起来像ChartData [0]是字符串。当您在字符串上使用阵列索引时,您会在该位置获得角色,这正是您所经历的...

以2、4和5的值渲染3点,分别为2、2和1的标题……也就是说,它将数组条目分为标题,然后将两位数数字的值分开。

有很多方法可以在JavaScript中定义数组中的数组;这是一个:

var chartData = [
  [22,24,15]
  ,['2010-9','2010-10','2010-11']
];

好吧,这不是一个真正的答案,但可能会对您有所帮助。

Highcharts使您能够预处理某些选项。就您而言,您可以做类似的事情:

options.series[0].data = new Array(1, 0, 4);

文档参考: http://www.highcharts.com/documentation/how-to-so-use#options

如果失败,请在上面发表评论。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top