В настоящее время я работаю с NGX-Charts версии 8.0.2, особенно с вертикальной гистограммой.
Я просматривал документацию по гистограмме и пытался выяснить, как отформатировать тики оси X с процентами.
пример: 20% 30% 40% 50% и т. Д.
Я немного покопался и нашел эту тему.
Функция для тикового форматирования потока
В основном это означало, что нужно будет использовать функцию для первого форматирования данных перед их передачей в формат yaxistickformatter.
Я продолжил копать и нашел эту ветку, которая дает представление о том, как форматировать выход указанной функции.
Как отформатировать строку локали в процентах
Итак, с помощью этих двух инструментов я попытался создать функцию, которая бы форматировала мою ось Y в процентах.
это мой файл компонента вертикальной гистограммы
import { Component, OnInit } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { NgxChartsModule } from '@swimlane/ngx-charts';
import { tankData } from '../data';
@Component({
selector: 'app-vertical-bar-chart',
templateUrl: './vertical-bar-chart.component.html',
styleUrls: ['./vertical-bar-chart.component.css']
})
export class VerticalBarChartComponent implements OnInit {
view = [700, 400];
// options
showXAxis = true;
showYAxis = true;
gradient = false;
results = tankData;
showLegend = true;
showXAxisLabel = true;
xAxisLabel = 'Country';
showYAxisLabel = true;
yAxisLabel = 'Population';
colorScheme = {
domain: ['#5AA454', '#A10A28', '#C7B42C', '#AAAAAA']
};
constructor() {
Object.assign(this, { tankData });
}
ngOnInit() {
}
}
function percentTickFormatting(val: any): string {
return val.toLacaleString('en-us', {syle: 'percent',
maximumSignificantDigits: 1});
}
это мой HTML-файл вертикальной гистограммы
<ngx-charts-bar-vertical
[view] = "view"
[scheme]="colorScheme"
[results]="tankData"
[gradient]="gradient"
[xAxis]="showXAxis"
[yAxis]="showYAxis"
[legend]="showLegend"
[showXAxisLabel]="showXAxisLabel"
[showYAxisLabel]="showYAxisLabel"
[xAxisLabel]="xAxisLabel"
[yAxisLabel]="yAxisLabel"
[yAxisTickFormatting] = "percentTickFormatting">
</ngx-charts-bar-vertical>
это мой файл данных:
export const tankData = [
{
'name': 'Germany',
'value': 90
},
{
'name': 'USA',
'value': 80
},
{
'name': 'France',
'value': 72
}
];
Это окончательный результат
отметки оси y не были отформатированы в процентах.Я уверен, что я близок, возможно, мне может понадобиться передать значения из файла данных в функцию, которую я обрисую, чтобы затем ее можно было отформатировать и передать в график.Однако я не уверен, как это сделать.Любая помощь будет оценена.