首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PieChart上方和下方的AmCharts4标签

PieChart上方和下方的AmCharts4标签
EN

Stack Overflow用户
提问于 2019-10-28 03:20:41
回答 1查看 593关注 0票数 0

我现在正试着用AmCharts4画一些漂亮的PieCharts。

问题是我的数据集中有很多不同的小数据,这导致了很多标签。在我的PieChart上,AmCharts4只将标签左右对齐,这导致一些标签无法显示。我不想隐藏任何标签。

我在谷歌上搜索,并试图在amcharts文档中找到一些东西,但除了这个示例https://www.codeseek.co/EpicVisionStudio/simple-pie-chart-GroyYx?lang=es之外,我找不到任何有用的东西。这正是我所需要的,但它是基于amcharts3的,并且我想使用amcharts4,但我无法迁移该示例。

下面是我在AmCharts4上尝试过的代码:

代码语言:javascript
复制
am4core.ready(() => {
                // Themes begin
                am4core.useTheme(am4themes_material);
                am4core.useTheme(am4themes_animated);
                // Themes end

                // Create chart instance
                const chart = am4core.create('chartdiv', am4charts.PieChart);
                // Add data
                // chart.data = this.portfolioSecurityData;
                chart.data = [
                    {
                        country: 'Account Status',
                        litres: 501.9,
                    },
                    {
                        country: 'Random Safety',
                        litres: 301.9,
                    },
                    {
                        country: 'IFTA',
                        litres: 201.1,
                    },
                    {
                        country: 'Vehicle Registration',
                        litres: 165.8,
                    },
                    {
                        country: 'All Trucks In',
                        litres: 139.9,
                    },
                    {
                        country: 'Tandem Weight',
                        litres: 128.3,
                    },
                    {
                        country: 'Site Random',
                        litres: 99,
                    },
                    {
                        country: 'No WIM',
                        litres: 60,
                    },
                    {
                        country: 'more data 1',
                        litres: 50,
                    },
                    {
                        country: 'more data',
                        litres: 50,
                    },
                    {
                        country: 'more data',
                        litres: 50,
                    },
                    {
                        country: 'more data',
                        litres: 50,
                    },
                    {
                        country: 'more data',
                        litres: 50,
                    },
                    {
                        country: 'more data',
                        litres: 50,
                    },
                    {
                        country: 'more data',
                        litres: 50,
                    },
                    {
                        country: 'more data',
                        litres: 50,
                    },
                    {
                        country: 'more data',
                        litres: 50,
                    },
                    {
                        country: 'more data',
                        litres: 50,
                    },
                    {
                        country: 'more data',
                        litres: 50,
                    },
                    {
                        country: 'more data',
                        litres: 50,
                    },
                ];
                chart.exporting.menu = new am4core.ExportMenu();
                // Set inner radius
                chart.innerRadius = am4core.percent(50);
                chart.radius = am4core.percent(80);

                // Add and configure Series
                const pieSeries = chart.series.push(new am4charts.PieSeries());
                pieSeries.dataFields.value = 'litres';
                pieSeries.dataFields.category = 'country';
                pieSeries.slices.template.stroke = am4core.color('#fff');
                pieSeries.slices.template.strokeWidth = 2;
                pieSeries.slices.template.strokeOpacity = 1;

                // This creates initial animation
                pieSeries.hiddenState.properties.opacity = 1;
                pieSeries.hiddenState.properties.endAngle = -90;
                pieSeries.hiddenState.properties.startAngle = -90;

                pieSeries.labels.template.fontSize = 12;

我附上了两张结果的图片:

My Amcharts4 result

Good Amcharts3 Example

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-29 14:21:38

这里有几个选项。

选项#1

减少标签的填充,使它们更紧密地打包在一起:

代码语言:javascript
复制
pieSeries.labels.template.padding(1, 1, 1, 1);

选项#2

取消对齐标签(如V3中的标签):

代码语言:javascript
复制
pieSeries.alignLabels = false;

选项#3

使用官方Slice Grouper插件对小切片进行分组。

代码语言:javascript
复制
var grouper = pieSeries.plugins.push(new am4plugins_sliceGrouper.SliceGrouper());
grouper.clickBehavior = "break";
grouper.threshold = 3;

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58582573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档