高图表(高库存):从外部 CSV 获取数据,无法正确显示日期
Highcharts (Highstock): Get data from external CSV, doesn't display date correctly
我已经尝试了好几天,让Highstock使用外部CSV文件。问题首先是导入的文件按"降序"排序,而Highcharts要求数据按"升序"顺序排序。一旦我找到一个接近我问题的JSFiddle/Codepen,我就设法正确显示数据。现在的问题是,在 x 轴上,日期显示为类似 00:00:00.500
而它应该看起来像这样2016-03-11
。
我创建了一个代码笔,因为您可能比在此处复制/粘贴大量代码更容易响应它:http://codepen.io/bauhausweb/pen/aNpbxg
感谢您调查我的问题!
对于您的示例,似乎至少存在2016-03-11
只是一个字符串而不是以毫秒为单位的时间戳的问题,这导致它选择了默认值 0、1、2、...改为 X 值。
下面我提供了一个示例,说明如何在 complete
函数的帮助下,使用 csv
属性的数据模块来实现类似的结果:
$(function () {
$.get("https://www.example.com/my.csv", function (csv) {
$('#container').highcharts('StockChart', {
data: {
complete: function(o) {
o.series[0].data.reverse();
},
csv: csv
}
});
});
});
或者看看这个JSFiddle演示。
尝试做这样的事情:
$.each(lines, function (lineNo, line) {
if (lineNo > 0 && lineNo < 557) {
var items = line.split(',');
// var seriesname = String(items[0]); // this is the area name
var seriesname = "Gold"; // this is the area name
var price = parseFloat(items[1]);
var f_date = items[0];
var format = String(f_date.replace(/-/g,','));
var date_items = format.split(',');
var d = Date.UTC(date_items[0],date_items[1],date_items[2]);
console.log(d);
var date = d;
// this will be the id of the drilldown
// var shift_one_value = parseFloat(items[3]); // drilldown shift1 value
// var shift_two_value = parseFloat(items[4]); // drilldown shift2 value
series.data.push({
name: seriesname,
y: price,
x: date
});
}
});
问题是它将被格式化为 UTC 的日期
你的代码有很多奇怪的地方。您的xAxis
设置为日期时间,这很好。点间隔为一天 - 也很好。但是,如果您查看series.data
则发送的数据格式如下:
{
name: "Gold",
x: "1233.6",
y: 1233.6
}
您在此处设置y
:
var date = String(items[1]);
您应该使用 items[0]
.现在,您还必须将此字符串解析为 JavaScript 时间。这样的事情可以工作:
var arr = String(items[0]).split("-");
var date = Date.UTC(arr[0], arr[1], arr[2]);
但是,现在您的图表会抛出日期未排序的错误。在此处查看更新的笔。
相关文章:
- 将时区格式的日期显示为UTC时间
- 如何根据所选日期显示警告
- JavaScript日期显示
- 如何使用 DHTMLX 甘特图扩展甘特图的日期显示
- 如何根据当前日期显示两周期间的第一天
- 日期选取器将今天的日期显示为默认值,并且仅适用于 GET
- 由于时区的原因,字符串的新日期显示为前一天
- 如何使用JavaScript将日期显示为DD/MM/YY格式
- fullCalendar.js:按选定日期显示事件
- javascript getDay()为旧日期显示错误的日期
- 在JSON中按日期显示数组出现的次数
- 根据所选日期显示信息
- Jquery日期选择器所有日期显示为不可选择
- 从数据库中按日期显示日历上的事件
- Jqgrid中的日期显示休息1天
- 基于日期显示日期的Javascript
- CouchDB map/reduce函数按日期显示用户的有限结果
- JavaScript日期显示错误的日期和时间
- 我通过javascript突出显示的当前日期显示不正确
- 使用JavaScript进行查询,以便在HTML文档中按日期显示事件