Skip to content

excel chart sunburst

zmworm edited this page Apr 29, 2026 · 16 revisions

Excel: Chart - sunburst

A dedicated page for the sunburst chart type. Sunburst charts are part of Excel's cx:chart (extended chart, Office 2016+) family. They display hierarchical data as concentric rings where each arc's angle is proportional to its value.

Path: /{SheetName}/chart[N]

Add command shape:

officecli add data.xlsx /Sheet1 --type chart \
  --prop chartType=sunburst \
  --prop series1="Name:v1,v2,v3,..." \
  --prop categories="Cat1,Cat2,Cat3,..." \
  <styling props>

See also: Chart - add, Chart - set, histogram for the full cx styling reference.

What a sunburst is

A sunburst chart displays hierarchical data as concentric rings radiating from a center point. Each ring level represents one tier of the hierarchy, and each arc's angle is proportional to its value within that tier. Sunbursts are ideal for showing part-to-whole relationships in tree-structured data (org charts, file systems, taxonomies).

officecli add data.xlsx /Sheet1 --type chart \
  --prop chartType=sunburst \
  --prop title="Organization Breakdown" \
  --prop series1="Headcount:50,30,20,15,10,8" \
  --prop categories="Engineering,Sales,Marketing,Support,HR,Finance"

Sunburst-specific properties

Sunburst has no unique properties beyond the shared cx vocabulary. All styling is done via the common cx knobs documented below.

Layout knobs

Property Default Notes
x / y 0 Top-left cell position (column / row index)
width 8 Chart width in column units
height 15 Chart height in row units

Series colors

Property Default Notes
fill (theme) Single hex color for all segments: "4472C4" or with #. Internally stored without #.
colors (theme) Comma-separated hex colors, cycled across segments. E.g. "4472C4,ED7D31,A5A5A5,FFC000"
series.shadow / seriesshadow Outer drop shadow on segments: "COLOR-BLUR-ANGLE-DIST-OPACITY" (e.g. "000000-6-45-3-35") or "none" to remove

Data labels

Property Default Notes
dataLabels false true draws the value inside each arc segment
datalabels.numfmt / labelnumfmt Excel format code for the label text: "0", "0.0", "0.00%", "#,##0", etc.
# Percentage labels
officecli add data.xlsx /Sheet1 --type chart \
  --prop chartType=sunburst \
  --prop series1="Revenue:500,300,200,100" \
  --prop categories="North,South,East,West" \
  --prop dataLabels=true \
  --prop "datalabels.numfmt=0.0%"

Axes and gridlines

Sunburst charts have no axes and no gridlines. All axis-related properties (xAxisTitle, yAxisTitle, axismin, gridlines, etc.) are silently ignored on sunburst charts.

Title styling

Property Default Notes
title Chart title text; none/false to hide
title.color / titlecolor Title font color (hex)
title.size / titlesize Title font size (pt)
title.bold / titlebold Title bold (true/false)
title.font / titlefont Title font family
title.shadow / titleshadow Title drop shadow: "COLOR-BLUR-ANGLE-DIST-OPACITY" or "none"

Legend

Property Default Notes
legend top / bottom / left / right / none (omit legend)
legend.overlay / legendoverlay false Let the legend float on top of the plot area when true. Useful when chart space is tight.
legendfont / legend.font Compound legend text styling: "size:color:fontname"

Plot area and chart area fills

The plot area is the rectangle the sunburst rings are drawn inside. The chart area is the outer frame that also contains the title and legend.

Property Default Notes
plotareafill / plotfill Plot-area solid background: hex color
plotarea.border / plotborder Plot-area outline: "color", "color:width", "color:width:dash", or "none"
chartareafill / chartfill Chart-area (outer frame) solid background: hex color
chartarea.border / chartborder Chart-area outline, same grammar as plotarea.border
# Dark theme sunburst
officecli add data.xlsx /Sheet1 --type chart \
  --prop chartType=sunburst \
  --prop series1="Revenue:500,300,200,100" \
  --prop categories="North,South,East,West" \
  --prop plotareafill=1A1F2C \
  --prop "plotarea.border=3A3E4E:1.25" \
  --prop chartareafill=0B0F18 \
  --prop "chartarea.border=2A2E3E:1"

Full example: styled sunburst

officecli add data.xlsx /Sheet1 --type chart \
  --prop chartType=sunburst \
  --prop title="Revenue by Region" \
  --prop title.color=1B2838 --prop title.size=18 --prop title.bold=true \
  --prop title.font="Helvetica Neue" \
  --prop series1="Revenue:500,350,280,200,150,120,80,50" \
  --prop categories="North America,Europe,Asia Pacific,Latin America,Middle East,Africa,Oceania,Other" \
  --prop colors=2E86AB,A23B72,F18F01,C73E1D,3B1F2B,44BBA4,E94F37,393E41 \
  --prop "series.shadow=000000-6-45-3-40" \
  --prop dataLabels=true --prop "datalabels.numfmt=0.0%" \
  --prop plotareafill=F8F9FA \
  --prop "plotarea.border=DEE2E6:1" \
  --prop chartareafill=FFFFFF \
  --prop "chartarea.border=CED4DA:0.75" \
  --prop legend=bottom \
  --prop "legendfont=10:6C757D:Helvetica Neue" \
  --prop x=0 --prop y=0 --prop width=14 --prop height=20

HTML preview support

Feature Preview Notes
Concentric arcs Yes Single ring (simplified)
Proportional angles Yes Arc angle = value/total
Per-segment colors Yes Cycled through palette
Plot/chart area fills Yes

Note: The HTML preview renders a simplified single-ring view. Full hierarchical multi-ring rendering is only available in Excel.

Known quirks and limitations

  • No axes. Sunburst charts are a pure angular-proportional visualization with no axes or gridlines. All axis-related properties are silently ignored.
  • Single-ring preview. The HTML preview renders only one ring level. Multi-level hierarchical sunbursts require Excel for visual QA.
  • Preview font fallback. The HTML preview renders segment colors and fills correctly but does not reproduce custom font families — labels fall back to the preview's default sans font.

Inspect an existing sunburst

# Count all charts across the workbook
officecli query data.xlsx chart

# Introspect a single chart's bound properties
officecli get data.xlsx "/Sheet1/chart[1]"

# Render the sheet to HTML preview
officecli view data.xlsx html > preview.html

See Also


Based on OfficeCLI v1.0.64

Clone this wiki locally