Highcharts以一种奇怪的方式分解了我的数据阵列
-
12-10-2019 - |
题
我在用着 高尚 (链接到特定的演示 - 单击视图选项以比较下面的代码)以渲染一些数据以供个人使用。
注意:这几乎肯定是一个与我相关的错误,所以我并不是要暗示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
如果失败,请在上面发表评论。