我正在使用新的 amcharts5,尽管引用了我的旧代码和其他链接,但我似乎无法将饼图“切片”和标签更改为纯数字。
基本上我的代码和图表加载,但问题是我的值是用百分比而不是数字来描述的。这是我下面的代码,我试图解决这个问题。
任何帮助将不胜感激。
// Set data
series.data.setAll([
{ value: Type[0], category: "Type 1" },
{ value: Type[1], category: "Type 2" },
{ value: Type[2], category: "Type 3" },
]);
// Create legend
var legend = chart.children.push(am5.Legend.new(root, {
centerX: am5.percent(50),
x: am5.percent(50),
marginTop: 15,
marginBottom: 15
}));
legend.labels.template.text = "{category}: {value.value}";
legend.slices.template.tooltipText = "{category}: {value.value}";
chart.legend.valueLabels.template.text = "{value.value}";
legend.data.setAll(series.dataItems);
Run Code Online (Sandbox Code Playgroud)
问候
v5 在 API 方面与 v4 完全不同。为了配置饼图的图例,您必须将其设置在系列中,如下所示:
let series = chart.series.push(
am5percent.PieSeries.new(root, {
name: "Series",
categoryField: "country",
valueField: "sales",
legendLabelText: "{category}",
legendValueText: "{value}"
})
);
Run Code Online (Sandbox Code Playgroud)
需要使用set或在切片上设置工具提示setAll(有关更多信息,请参阅设置文档):
series.slices.template.set('tooltipText', '{category}: {value}');
Run Code Online (Sandbox Code Playgroud)
类似地,对于切片标签,text使用上述函数设置属性:
series.labels.template.set('text', '{category}: {value}');
Run Code Online (Sandbox Code Playgroud)
演示:
let series = chart.series.push(
am5percent.PieSeries.new(root, {
name: "Series",
categoryField: "country",
valueField: "sales",
legendLabelText: "{category}",
legendValueText: "{value}"
})
);
Run Code Online (Sandbox Code Playgroud)
series.slices.template.set('tooltipText', '{category}: {value}');
Run Code Online (Sandbox Code Playgroud)
series.labels.template.set('text', '{category}: {value}');
Run Code Online (Sandbox Code Playgroud)