如何要求在股票图表中为大型数据集记录所有数据点



当使用相当大的数据集时,如何确保所有数据都记录在一个amcharts3股票图表上?Amcharts.makeChart()似乎省略了值,尽管设置了syncDataTimestamps: true

我有两个数据集正在与compared: true设置进行比较,很像这个答案。这两个数据集都具有字符串形式的日期时间。一个数据集明显大于另一个。起初,我怀疑其中一个数据集没有显示,但在设置compareGraphBullet: round后,我注意到一个要点,如此屏幕截图所示。

var my_chart =  AmCharts.makeChart("my_chart_div", {
type: "stock",
theme: "light",
dataDateFormat: "YYYY-MM-DD JJ:NN:SS:QQQ",
categoryAxis: {
parseDates: true,
minPeriod: 'fff'
},
categoryAxesSettings: {
minPeriod: "fff",
groupToPeriods: ['fff', 'ss']
},
syncDataTimestamps: true,
dataSets: [
{
title: "my_first_data thing",
fieldMappings: [{
fromField: "reading",
toField: "value"
}],
dataProvider: data1_provider,
categoryField: "datetime",
compared: true
},
{
title: "my_second_data thing",
fieldMappings: [{
fromField: "target_value",
toField: "value"
}],
dataProvider: data2_provider,
categoryField: "datetime",
compared: true
}
],
panels: [{
// showCategoryAxis: false,
title: "Data set #1",
recalculateToPercents: "never",
stockGraphs: [{
id: "g1",
valueField: "value",
compareGraphBullet: 'round',
comparable: true,
compareField: "value"
}],
stockLegend: {
}
}]
});

编辑:这里有一个指向代码笔的链接,它似乎也出现了同样的问题。

问题是由于您的groupToPeriods设置与您正在使用的同步时间戳功能相结合。设置groupToPeriods时,指示amCharts在达到总maxSeries时(从阵列中的最小周期到最大周期(将数据分组到指定的周期。即使数据集中只有几个点,同步时间戳方法也会创建伪点,以便进行数据比较,因此可见点恰好在屏幕截图中被分组为一个点,而在代码笔中什么都不显示。

您唯一的选择是删除groupToPeriods或通过将maxSeries设置为0完全禁用分组,但后者会影响性能。您可以在此处找到有关股票图表数据分组工作方式的更多信息。

最新更新