javascript - AMCHARTS 4 组数据
问题描述
在 AMCHARTS 4 上对数据进行分组时,我正在努力获得我正在寻找的结果。
我已经按照这里看到的例子:https ://www.amcharts.com/demos/data-grouping-50k-points/
这会产生以下结果: 图表
两张图使用相同的数据集。
正如您所提供的图片所见,下方是 AMCHARTS 3 未分组,顶部是 AMCHARTS 4 并设置为分组。
我想看到的是;顶部图表的峰值以显示分组数据的最高结果。因此,两张图上 4 月 6 日和 4 月 8 日之间的部分将显示结果 150,就像下方的 AMCHARTS 3 图表一样。
这是我的参考代码:
chart = am4core.create($scope.id, am4charts.XYChart);
chart.data = readingData;
var dateAxis = chart.xAxes.push(new am4charts.DateAxis());
dateAxis.renderer.grid.template.location = 0.5;
dateAxis.renderer.labels.template.location = 0.5;
dateAxis.renderer.minGridDistance = 60;
dateAxis.groupData = true;
dateAxis.minZoomCount = 3;
dateAxis.groupIntervals.setAll([
{ timeUnit: "second", count: 10 },
{ timeUnit: "minute", count: 1 },
{ timeUnit: "hour", count: 1 },
{ timeUnit: "day", count: 1 },
{ timeUnit: "week", count: 1 },
{ timeUnit: "month", count: 1 },
{ timeUnit: "year", count: 1 },
]);
var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());
var series = chart.series.push(new am4charts.LineSeries());
series.dataFields.dateX = "created_at";
series.dataFields.valueY = "total";
series.tooltipText = "{valueY}";
series.tooltip.pointerOrientation = "vertical";
series.tooltip.background.fillOpacity = 0.5;
series.groupFields.valueY = "max";
chart.cursor = new am4charts.XYCursor();
chart.cursor.xAxis = dateAxis;
var scrollbarX = new am4core.Scrollbar();
scrollbarX.marginBottom = 20;
chart.scrollbarX = scrollbarX;
任何帮助是极大的赞赏。
解决方案
中没有“最大”设置groupFields
。有效值为“open”、“close”、“low”、“high”、“average”和“sum”。
在您的情况下,请尝试使用"high"
,例如
series.groupFields.valueY = "high";
演示如下:
var chart = am4core.create("chartdiv", am4charts.XYChart);
chart.data = generateData();
var dateAxis = chart.xAxes.push(new am4charts.DateAxis());
dateAxis.renderer.grid.template.location = 0.5;
dateAxis.renderer.labels.template.location = 0.5;
dateAxis.renderer.minGridDistance = 60;
dateAxis.groupData = true;
dateAxis.minZoomCount = 3;
dateAxis.groupIntervals.setAll([{
timeUnit: "second",
count: 10
},
{
timeUnit: "minute",
count: 1
},
{
timeUnit: "hour",
count: 1
},
{
timeUnit: "day",
count: 1
},
{
timeUnit: "week",
count: 1
},
{
timeUnit: "month",
count: 1
},
{
timeUnit: "year",
count: 1
},
]);
var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());
var series = chart.series.push(new am4charts.LineSeries());
series.dataFields.dateX = "created_at";
series.dataFields.valueY = "total";
series.tooltipText = "{valueY}";
series.tooltip.pointerOrientation = "vertical";
series.tooltip.background.fillOpacity = 0.5;
series.groupFields.valueY = "high";
chart.cursor = new am4charts.XYCursor();
chart.cursor.xAxis = dateAxis;
var scrollbarX = new am4core.Scrollbar();
scrollbarX.marginBottom = 20;
chart.scrollbarX = scrollbarX;
function generateData() {
var date = new Date(2019, 4, 1);
var data = [];
for (var i = 0; i < 2500; ++i) {
var newDate = new Date(date);
newDate.setSeconds(newDate.getSeconds() + i);
data.push({
total: 100 * Math.sin((Math.PI / 180) * i) + 100,
created_at: newDate
})
}
return data;
}
#chartdiv {
width: 100%;
height: 400px;
}
<script src="//www.amcharts.com/lib/4/core.js"></script>
<script src="//www.amcharts.com/lib/4/charts.js"></script>
<div id="chartdiv"></div>
推荐阅读
- model-view-controller - .Net Core 视图中的 Foreach 语句
- django - 无法让 send_mail 在 Django 2.3 中工作。没有错误信息。没有指示电子邮件已发送或未发送的日志消息
- linux - 从内核树编译 eBPF C 代码时出错
- python - 在 python 多处理中更新复杂对象
- php - 如何选择/打印关联数组的子数组的元素?
- c++ - Qt Q_OBJECT 宏导致样式表出现意外行为
- javascript - 无法在一个地方读取未定义的属性切换,但在另一个地方工作
- javascript - React url 更改但组件状态相同
- aurelia - 如何将 virtual-repeater.for 与地图一起使用
- android - 如何使用按钮调用 Android Things 中的方法