angular - 如何将 amcharts4 XY 图表制作为可重用组件
问题描述
我有一个父组件:“dashboard-reports”
,我为 am4chart XY bar 创建了一个子组件(bar-chart.component)
我想为各种报告显示使用相同的组件,我们如何使用 angular 和 a4charts lib 来实现这一点
在dashboard-reports.componet.html(父组件)中
<div><app-bar-chart [barChartInput]='downTimeAnalysis'></app-bar-chart><div>
<div><app-bar-chart [barChartInput]='reservationAnalysis'></app-bar-chart></div>
在条形图 coponent.html 中
<div class="custom-card-body py-4 px-3">
<div class="no-grid-kendo-loader">
<div *ngIf="barLoading" class="k-i-loading"></div>
<div id="barChat" style="height: 500px;"></div>
</div>
</div>
bar-chart-component.ts
export class BarChartComponent implements OnInit {
private chart: am4charts.XYChart;
public barLoading: boolean = false;
@Component({
selector: 'app-bar-chart',
templateUrl: './bar-chart.component.html',
styles: []
})
constructor(public translate: TranslateService,private zone: NgZone) { }
ngOnInit() {
this.zone.runOutsideAngular(() => {
let chart = am4core.create('barChat', am4charts.XYChart);
this.barLoading = true;
this.chart = chart;
this.setupBarChat();
});
}
public setupBarchart() {
//Horizontal axis
let categoryAxis = barChart.xAxes.push(new am4charts.CategoryAxis());
categoryAxis.dataFields.category = "instrumentName";
categoryAxis.renderer.grid.template.strokeWidth = 0;
categoryAxis.fontSize = 11;
//Vertical axis
let valueAxis = barChart.yAxes.push(new am4charts.ValueAxis());
valueAxis.renderer.minGridDistance = 30;
valueAxis.title.text = titleConfigureation;
// showing bar chats data
let barChartSeries = barChart.series.push(new am4charts.ColumnSeries3D());
barChartSeries.dataFields.valueY = "usageInHours";
barChartSeries.dataFields.categoryX = "instrumentName";
}
ngOnDestroy() {
this.zone.runOutsideAngular(() => {
if (this.chart) {
this.chart.dispose();
}
});
}
如何绘制多个图表,现在只能正确绘制一个图表。第二个没有正确绘制
解决方案
推荐阅读
- python - 未正确调用 DataFrame 构造函数!使用 JSON
- swift - 如何在不通过选择器 Swift 的情况下将参数传递给方法?
- python - numpy.load 给出 ValueError: descr is not a valid dtype descriptor:
- vagrant - 如何使用 vagrant 在 chef-solo 中提供多个食谱?
- git - 在不破坏 git 的情况下管理 git config 中的点文件合并冲突
- python - Peewee 查询以获取特定日期的所有记录
- java-8 - 使用 Java 8,我如何读取文件的内容,而我只能在文件中的任何位置获得冒号之后的内容?
- python - argparse subparser --help 输出不显示子解析器的描述
- mysql - 使用 Makefile 在 Docker 容器中运行 SQL 脚本
- amazon-web-services - 通过 SNS 和 Lambda 的电子邮件通知