angular - 带有 Angular 9 的 AmCharts:加载 csv 数据,图表为空白
问题描述
我将 Angular 9 与 AmCharts 4 一起使用。
我需要将 CSV 数据加载到饼图中。数据如下:
Operation Type, Quantity
Internal, 687
External, 456
图表声明为:
ngAfterViewInit() {
this.chart = am4core.create(this.getChartID(), am4charts.PieChart);
const subtitulo = this.chart.titles.create();
subtitulo.text = this.subtitulo;
subtitulo.fontSize = 10;
const titulo = this.chart.titles.create();
titulo.text = this.titulo;
titulo.fontSize = 15;
titulo.marginTop = 10;
}
该数据来自一个 servlet(是的,所有的 CORS 都通过了)。我可以确认数据已加载(我可以正确看到“chart.data”值),但数据加载后未绘制它自己的图表。
我用来加载数据的代码是:
this.chart.dataSource.url = 'https://myserver.com/ng/DataService/?param1=342¶m2=filterN&format=csv';
const csvParser = new am4core.CSVParser();
csvParser.options.useColumnNames = true;
this.chart.dataSource.parser = csvParser;
this.chart.dataSource.events.on('error', (error) => { console.log('Datasource error: ', error); });
this.chart.dataSource.load();
图表正在创建中执行“加载”后,我可以在“开发人员工具”中看到数据已正确加载,但图表仍然为空。
我错过了什么吗?
解决方案
定义图表对象和数据源 URL 是不够的。每种图表类型都需要定义一个系列对象,以定义进一步的特征,包括从中提取数据的字段。
var pieSeries = this.chart.series.push(new am4charts.PieSeries());
pieSeries.dataFields.value = "Quantity";
pieSeries.dataFields.category = "Operation Type";
推荐阅读
- angular - 从其他控件动态设置角度控制值
- swift - 如何在快速为 UIView 提供阴影的同时去除某些 iPhone 中的额外黑色阴影?
- c# - WPF:如何实现清除命令
- python - 如何使用 redis.py 运行哨兵命令
- c# - Xamarin.Android 没有从动态库加载中找到类
- python - 如果行中的所有值都等于 False,则 Pandas DF 过滤器
- r - 闪亮:下载剧情
- docker - 在 wndows 10 中安装 docker 时出错
- azure-function-app - Azure 函数代理设置重定向到 backendUri Url
- c# - 为什么 asp.net 核心发送空对象作为响应?