Skip to content
commit-766c8d6756a1

Interactive radar

Aligned multidimensional profiles for comparing broad shapes over the same bounded indicators.

Purpose
Compare repeated observations over the same bounded dimensions.
Use when
A few dimensions share stable maxima and the profile shape matters more than precise pairwise ranking.
Avoid when
Exact ranking, many dimensions, incompatible scales, or small differences are the goal; use bars, parallel coordinates, or a table.
Equivalent data
Every chart is followed by a keyboard-accessible exact-value table with the city, day, and six pollutant values.
Exact radar values
SeriesObservationAQIPM2.5PM10CONO2SO2
BeijingDay 1559560.46186
BeijingDay 22511210.65349
BeijingDay 3567630.3145
BeijingDay 4337290.33166
BeijingDay 54224440.764016
BeijingDay 68258901.776833
BeijingDay 77449771.464827
BeijingDay 87855801.295929
BeijingDay 92672162804.810864
BeijingDay 101851272162.526127
BeijingDay 113919380.573115
BeijingDay 124111400.43217
BeijingDay 136438741.044622
BeijingDay 14108791201.77541
BeijingDay 15108631161.484426
BeijingDay 16336290.34135
BeijingDay 1794661101.546231
BeijingDay 181861421923.889379
BeijingDay 195731540.963214
BeijingDay 20228170.482310
BeijingDay 213915360.612913
Usage Example
@interactiveradar.Radar(interactiveradar.Config{
  Label: "Daily Beijing air quality",
  Indicators: pollutantIndicators,
  Series: []interactiveradar.Series{{Name: "Beijing", Data: dailyBeijingValues}},
  Coordinate: interactiveradar.CoordinateOptions{
    SplitArea: chart.Bool(true),
    SplitLine: &interactiveradar.SplitLineOptions{Show: chart.Bool(true)},
  },
})

Circular style

Shape, split count, split-line treatment, line opacity, and area opacity remain typed options on the same Radar component.

Exact radar values
SeriesObservationAQIPM2.5PM10CONO2SO2
BeijingDay 1559560.46186
BeijingDay 22511210.65349
BeijingDay 3567630.3145
BeijingDay 4337290.33166
BeijingDay 54224440.764016
BeijingDay 68258901.776833
BeijingDay 77449771.464827
BeijingDay 87855801.295929
BeijingDay 92672162804.810864
BeijingDay 101851272162.526127
BeijingDay 113919380.573115
BeijingDay 124111400.43217
BeijingDay 136438741.044622
BeijingDay 14108791201.77541
BeijingDay 15108631161.484426
BeijingDay 16336290.34135
BeijingDay 1794661101.546231
BeijingDay 181861421923.889379
BeijingDay 195731540.963214
BeijingDay 20228170.482310
BeijingDay 213915360.612913
Circular style
Coordinate: interactiveradar.CoordinateOptions{
  Shape: interactiveradar.ShapeCircle,
  SplitNumber: 5,
  SplitLine: &interactiveradar.SplitLineOptions{
    Show: chart.Bool(true),
    Style: &chart.LineStyle{Width: 1, Opacity: chart.Float(.1)},
  },
},
SeriesOptions: chart.SeriesOptions{
  LineStyle: &chart.LineStyle{Width: 1, Opacity: chart.Float(.5)},
  AreaStyle: &chart.AreaStyle{Opacity: chart.Float(.1)},
}

Multiple-series legend

All three city profiles may remain visible or be toggled independently.

Exact radar values
SeriesObservationAQIPM2.5PM10CONO2SO2
BeijingDay 1559560.46186
BeijingDay 22511210.65349
BeijingDay 3567630.3145
BeijingDay 4337290.33166
BeijingDay 54224440.764016
BeijingDay 68258901.776833
BeijingDay 77449771.464827
BeijingDay 87855801.295929
BeijingDay 92672162804.810864
BeijingDay 101851272162.526127
BeijingDay 113919380.573115
BeijingDay 124111400.43217
BeijingDay 136438741.044622
BeijingDay 14108791201.77541
BeijingDay 15108631161.484426
BeijingDay 16336290.34135
BeijingDay 1794661101.546231
BeijingDay 181861421923.889379
BeijingDay 195731540.963214
BeijingDay 20228170.482310
BeijingDay 213915360.612913
GuangzhouDay 12637271.1632713
GuangzhouDay 28562711.195608
GuangzhouDay 37838741.363377
GuangzhouDay 42121360.634409
GuangzhouDay 54142460.9158113
GuangzhouDay 65652691.0679216
GuangzhouDay 76430280.924512
GuangzhouDay 85548741.2367526
GuangzhouDay 976851131.23711427
GuangzhouDay 1091811041.0415640
GuangzhouDay 118439600.9642511
GuangzhouDay 1264511010.8625823
GuangzhouDay 1370691201.1986536
GuangzhouDay 14771051782.5496416
GuangzhouDay 1510968870.9967429
GuangzhouDay 167368970.9055134
GuangzhouDay 175427470.5925312
GuangzhouDay 185161970.8116519
GuangzhouDay 1991711211.3744318
GuangzhouDay 20731021822.7874419
GuangzhouDay 217350760.7173120
ShanghaiDay 191451250.823423
ShanghaiDay 26527780.864529
ShanghaiDay 38360841.097327
ShanghaiDay 4109811211.286851
ShanghaiDay 5106771141.075551
ShanghaiDay 6109811211.286851
ShanghaiDay 7106771141.075551
ShanghaiDay 88965780.865126
ShanghaiDay 95333470.645017
ShanghaiDay 108055801.017524
ShanghaiDay 11117811241.034524
ShanghaiDay 1299711421.16242
ShanghaiDay 1395691301.287450
ShanghaiDay 14116871311.478440
ShanghaiDay 15108801211.38537
ShanghaiDay 16134831671.165743
ShanghaiDay 1779431071.055937
ShanghaiDay 187146890.866425
ShanghaiDay 1997711131.178831
ShanghaiDay 208457910.855531
ShanghaiDay 2187631010.95641
Multiple-series legend
Series: []interactiveradar.Series{beijing, guangzhou, shanghai},
Options: chart.ChartOptions{
  Legend: &chart.LegendOptions{SelectionMode: chart.LegendSelectionMultiple},
}

Single-series legend

Exclusive legend selection reduces overlap while retaining all source observations in the exact-value table.

Exact radar values
SeriesObservationAQIPM2.5PM10CONO2SO2
BeijingDay 1559560.46186
BeijingDay 22511210.65349
BeijingDay 3567630.3145
BeijingDay 4337290.33166
BeijingDay 54224440.764016
BeijingDay 68258901.776833
BeijingDay 77449771.464827
BeijingDay 87855801.295929
BeijingDay 92672162804.810864
BeijingDay 101851272162.526127
BeijingDay 113919380.573115
BeijingDay 124111400.43217
BeijingDay 136438741.044622
BeijingDay 14108791201.77541
BeijingDay 15108631161.484426
BeijingDay 16336290.34135
BeijingDay 1794661101.546231
BeijingDay 181861421923.889379
BeijingDay 195731540.963214
BeijingDay 20228170.482310
BeijingDay 213915360.612913
GuangzhouDay 12637271.1632713
GuangzhouDay 28562711.195608
GuangzhouDay 37838741.363377
GuangzhouDay 42121360.634409
GuangzhouDay 54142460.9158113
GuangzhouDay 65652691.0679216
GuangzhouDay 76430280.924512
GuangzhouDay 85548741.2367526
GuangzhouDay 976851131.23711427
GuangzhouDay 1091811041.0415640
GuangzhouDay 118439600.9642511
GuangzhouDay 1264511010.8625823
GuangzhouDay 1370691201.1986536
GuangzhouDay 14771051782.5496416
GuangzhouDay 1510968870.9967429
GuangzhouDay 167368970.9055134
GuangzhouDay 175427470.5925312
GuangzhouDay 185161970.8116519
GuangzhouDay 1991711211.3744318
GuangzhouDay 20731021822.7874419
GuangzhouDay 217350760.7173120
ShanghaiDay 191451250.823423
ShanghaiDay 26527780.864529
ShanghaiDay 38360841.097327
ShanghaiDay 4109811211.286851
ShanghaiDay 5106771141.075551
ShanghaiDay 6109811211.286851
ShanghaiDay 7106771141.075551
ShanghaiDay 88965780.865126
ShanghaiDay 95333470.645017
ShanghaiDay 108055801.017524
ShanghaiDay 11117811241.034524
ShanghaiDay 1299711421.16242
ShanghaiDay 1395691301.287450
ShanghaiDay 14116871311.478440
ShanghaiDay 15108801211.38537
ShanghaiDay 16134831671.165743
ShanghaiDay 1779431071.055937
ShanghaiDay 187146890.866425
ShanghaiDay 1997711131.178831
ShanghaiDay 208457910.855531
ShanghaiDay 2187631010.95641
Single-series legend
Series: []interactiveradar.Series{beijing, guangzhou, shanghai},
Options: chart.ChartOptions{
  Legend: &chart.LegendOptions{SelectionMode: chart.LegendSelectionSingle},
}

When radar works

Use a small, stable set of bounded indicators when the broad profile shape is meaningful. Polygon and circular coordinates change presentation, not values.

When radar fails

Overplotting, many dimensions, unequal scales, and close values make radar charts hard to compare. Prefer bars, parallel coordinates, or the exact-value table in those cases.

Accessibility

Hover and color are exploratory aids. Each example includes an exact radar values disclosure with every city, day, indicator, and value.

Shared controls and modes

Expand, fullscreen, PNG export, hidden/disabled/unwrapped lifecycle modes, resize events, and HTMX replacement behavior come from the shared chart wrapper. See chart controls and static/vector and interactive capabilities below.

Go API

v0.0.1

The examples above cover behavior and composition. pkg.go.dev is the canonical reference for exported types, functions, methods, and Go documentation.

github.com/araihu/goshtoso-charts/components/interactive/radar

Enabled, disabled, hidden, and omitted wrapper behavior, controls, export, and client transitions are shared by every chart. Review chart controls, then compare static/vector and interactive capabilities.

Open v0.0.1 API