无法使用任何图表从 csv 文件加载事件标记
Trouble loading eventmarkers from csv file with anychart
我正在尝试使用 anygraph 制作图表。它从 csv 文件加载数据,但我无法从同一文件获取事件标记。
对于 eventMarkers.data 方法,我似乎没有得到正确的 mapping/source 值。我的目标是从与图表源相同的 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
}
]});
我正在尝试使用 anygraph 制作图表。它从 csv 文件加载数据,但我无法从同一文件获取事件标记。
对于 eventMarkers.data 方法,我似乎没有得到正确的 mapping/source 值。我的目标是从与图表源相同的 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
}
]});