如何解决无法使用 anychart 从 csv 文件加载事件标记
我正在尝试使用 anygraph 制作图表。它从 csv 文件加载数据,但我无法从同一个文件中获取事件标记。
我似乎没有为 eventMarkers.data 方法获取正确的映射/源值。我的目标是从与图表源相同的 csv 文件中加载标记,其中 1 列将包含某些日期的标记信息。
假设我有以下 csv:
date,value,optionalmarkerinfo
2021-01-01 01:00:00,2,2021-01-01 01:00:00,3,markerinfo
以及以下代码:
anychart.data.loadCsvFile("export.csv",function (data) {
var dataTable = anychart.data.table(0,'');
dataTable.addData(data);
//Create table and stuff
var chart = anychart.stock(); // (the type of graph isnt correct for this data,but its only to generally give a skelet of my setup)
// more stuff where i create the first timelines graph
// then to add a marker on each timeframe:
// (data will be filtered later to only show markers on specific values of dates)
var dataSet = anychart.data.set(data);
var mappingMarker = dataSet.mapAs({date: 0});
chart.plot(1).eventMarkers().data(mappingMarker); // THIS DOESNT WORK
// finish the drawing:
chart.container('container');
chart.draw();
}
解决方法
遗憾的是,Stock 数据和映射实例与事件标记不兼容。您应该将数据直接应用为 an array of objects。作为一种解决方法,您可以加载一个单独的 CSV 文件,将其预处理为兼容的格式并将其应用于事件标记。
,作为对 anychart 建议单独加载带有标记的 csv 的建议的反应,我来到了下一个有效的解决方案:
anychart.data.loadCsvFile("markers.csv",function (data) {
var lines=data.split("\n");
var result = [];
for(var i=1;i<lines.length;i++){
var obj = {};
var currentline=lines[i].split(",");
obj["date"] = currentline[0];
obj["description"] = currentline[1];
result.push(obj);
}
// add the markers to the previously defined plot with the markers.
chart.plot(0).eventMarkers({"groups": [
{
"format": "A","data" : result
}
]});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。