要按替代数据属性对amCharts4树状图进行排序,可以使用数据提供者的sort
函数,并将排序函数传递给它。
以下是一个示例代码,演示如何按替代数据属性对amCharts4树状图进行排序:
// 导入amCharts模块
import * as am4core from "@amcharts/amcharts4/core";
import * as am4charts from "@amcharts/amcharts4/charts";
import am4themes_animated from "@amcharts/amcharts4/themes/animated";
// 使用amCharts主题
am4core.useTheme(am4themes_animated);
// 创建数据
let chartData = [{
name: "父节点",
value: 10,
children: [{
name: "子节点1",
value: 5,
children: [{
name: "子节点1-1",
value: 2
}, {
name: "子节点1-2",
value: 3
}]
}, {
name: "子节点2",
value: 3
}]
}];
// 创建图表实例
let chart = am4core.create("chartdiv", am4charts.TreeMap);
// 设置数据
chart.data = chartData;
// 创建序列
let series = chart.seriesTemplates.create("0", am4charts.TreeMapSeries);
// 配置序列
series.dataFields.value = "value";
series.dataFields.name = "name";
series.dataFields.children = "children";
// 设置替代数据属性进行排序
series.sorting = "desc";
series.sortBy = "value";
// 创建标签
let label = series.columns.template.createChild(am4core.Label);
label.text = "{name}: {value}";
// 设置容器
chart.homeText = "回到初始位置";
chart.logo.disabled = true;
chart.legend = new am4charts.Legend();
// 配置树状图布局
chart.maxLevels = 2;
chart.colors.step = 2;
// 设置容器尺寸
chart.width = am4core.percent(100);
chart.height = am4core.percent(100);
在这个例子中,我们创建了一个包含父节点和子节点的树状图数据。然后,我们创建了一个amCharts的树状图实例,并将数据传递给它。接下来,我们创建了一个序列,并设置了数据字段。最重要的部分是设置sorting
属性为"desc"
以指定降序排序,以及设置sortBy
属性为"value"
来指定按value
属性排序。
最后,我们创建了一个标签,用于显示节点名称和值。其他配置用于设置图表的外观和布局。
你可以根据自己的需求修改示例代码,以适应你的数据和样式需求。