From 2775026bee7d685792b1caf2e9974b3fdbe9d7cb Mon Sep 17 00:00:00 2001 From: HenryHai0407 Date: Sun, 16 Aug 2026 22:02:05 +0300 Subject: [PATCH] Add fixed 1-5 scale radar chart with five rings --- pbiviz.json | 8 ++++---- src/radarChart.ts | 26 +++++++------------------- 2 files changed, 11 insertions(+), 23 deletions(-) diff --git a/pbiviz.json b/pbiviz.json index f3055f5..5d55735 100644 --- a/pbiviz.json +++ b/pbiviz.json @@ -1,10 +1,10 @@ { "visual": { - "name": "radarChart", - "displayName": "Radar Chart 3.1.3.0", - "guid": "RadarChart1446119667547", + "name": "customRadarChart10", + "displayName": "Custom Radar Chart 5 Rings", + "guid": "CustomRadarChart5Rings5Scale2026", "visualClassName": "RadarChart", - "version": "3.1.3.0", + "version": "2.0.0.0", "description": "A simple radar chart supporting multiple measures plotted over a categorical axis. Also known as a web chart, spider chart, or star chart. Use to display performance metrics for quality improvement.", "supportUrl": "https://community.powerbi.com", "gitHubUrl": "https://github.com/Microsoft/PowerBI-visuals-RadarChart" diff --git a/src/radarChart.ts b/src/radarChart.ts index 2baeb2d..cf4e5d1 100644 --- a/src/radarChart.ts +++ b/src/radarChart.ts @@ -1514,27 +1514,15 @@ export class RadarChart implements IVisual { } private calculateChartDomain(series: RadarChartSeries[]): d3LinearScale { - const radius: number = this.radius * RadarChart.SegmentFactor, - dataPointsList: RadarChartDatapoint[] = this.getAllDataPointsList(series); + const radius: number = this.radius * RadarChart.SegmentFactor; - let maxValue: number = d3Max(dataPointsList, (dataPoint: RadarChartDatapoint) => { - return dataPoint.y; - }); - - let minValue: number = this.formattingSettings.display.minValue.value; + const minValue: number = 0; + const maxValue: number = 5; - if (this.isPercentChart(dataPointsList)) { - minValue = minValue >= RadarChart.MinDomainValue - ? RadarChart.MinDomainValue - : -RadarChart.MaxDomainValue; - - maxValue = maxValue <= RadarChart.MinDomainValue - ? RadarChart.MinDomainValue - : RadarChart.MaxDomainValue; - } - return d3ScaleLinear() - .domain([minValue, maxValue]) - .range([RadarChart.MinDomainValue, radius]); + return d3ScaleLinear() + .domain([minValue, maxValue]) + .range([RadarChart.MinDomainValue, radius]) + .clamp(true); } private renderLegend(): void {