我正在尝试创建类似resizable HighChart的内容。 不同之处在于我从blob加载我的数据。 这是我收到的图表:
这是收到的数据的一部分,来自console.log(行);:
[{date:' 7/13/2016 8:35:00 AM',value:60},{date:' 7/13/2016 上午8:36:00',价值:45},...]
这是我的代码:https://jsfiddle.net/end5xc7m/
series: [{
turboThreshold: 20000,
type: 'area',
name: 'Values to date',
data: data}
我相信这是我在函数visitorData中遇到问题的地方。
我没有将数据投射到图表上。
答案 0 :(得分:2)
正如 jlbriggs 所指出的,这是由于格式问题。除非您使用类别绘制轴,否则如果数据以字符串形式输入,则不会绘制Highcharts可视化。
我已经通过一些修复更新了你的小提琴:https://jsfiddle.net/brightmatrix/end5xc7m/2/
function processData(allText) {
var allTextLines = allText.split(/\r?\n/);
var lines = [];
for (var i = 0; i < allTextLines.length - 1; i++) {
var currentLine = allTextLines[i].split(',');
var thisLineValue = [Date.parse(currentLine[0]),parseInt(currentLine[1])];
lines.push(thisLineValue);
}
return lines;
}
以下是我改变的内容:
[x,y]
这样的数组,其中这些变量是日期或数字。使用花括号和+
连接运算符构建值会将这些值转换为字符串。因此,我创建了一个名为thisLineValue
的临时数组,并将其推送到lines
数组。Date.parse()
将您的日期值转换为时间戳。当您使用x轴设置时,Highcharts可以很好地理解datetime
轴。parseInt()
来避免将这些值转换为字符串。toString()
数组返回到图表时,我删除了lines
函数。同样,这会将值保持为图表所期望的格式(日期和数字)。我希望这对你有所帮助!