gpt4 book ai didi

javascript - 如何动态添加 stockEvents 到 amCharts

转载 作者:行者123 更新时间:2023-12-03 03:11:44 25 4
gpt4 key购买 nike

我有一个函数,用于向我的股票图表添加新数据点。我需要创建一种条件,其中一个数据点带有图标。我看到 stockEvents 可以做到这一点,但它没有显示在我的图表中:

function addDataPoint(ask) {
var dataProvider = chart.dataSets[0].dataProvider;
var newDate = new Date(dataProvider[dataProvider.length - 1].date.getTime());
newDate.setHours(newDate.getHours(), newDate.getMinutes() + 1, newDate.getSeconds());
var a = Math.round(Math.random() * (40 + 1000)) + 100 + 1000;
var b = Math.round(Math.random() * 100000000);
dataProvider.push({
date: newDate,
value: ask,
volume: ask
});
chart.dataSets[0].stockEvents = [{
date: newDate,
type: "flag",
text: "F",
description: "Some longer\ntext can also\n be added"
}];
dataProvider.shift();
}

最佳答案

您需要设置库存事件的graph属性以使其可见。这可以是对股票图表对象的引用,或者图表的 id 。您还需要调用validateData以便更新图表(如果您尚未在 addDataPoint 函数之外执行此操作)。

AmCharts.makeChart("chartdiv", {
// ...
"panels": [{
// ...
"stockGraphs": [{
// ...
"id": "g1", //added id
// ...
},
// ...
]
},
// ...
],
// ...
});
// ...
function addDataPoint(ask) {
// ...
chart.dataSets[0].stockEvents = [{
date: newDate,
type: "flag",
text: "F",
graph: "g1", //added
description: "Some longer\ntext can also\n be added"
}];
dataProvider.shift();
chart.validateData(); //added
}

另请注意,您每次在 addDataPoint 函数中都会覆盖 stockEvents 数组。如果您想保留以前的事件,那么您需要使用 push 因为它是一个数组。

Demo

关于javascript - 如何动态添加 stockEvents 到 amCharts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46924735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com