logo

G2

  • Docs
  • Chart Introduction
  • API
  • Examples
  • Theme
  • Ecosystem
  • Productsantv logo arrow
  • 5.3.3
  • 📈 Chart Introduction
  • Mosaic Plot
  • Bar Chart
  • Bubble Chart
  • Color Map
  • Histogram Chart
  • Radial Bar Chart
  • Stacked Bar Chart
  • Area Chart
  • Box Plot
  • Bubble Map
  • Radar Chart
  • Bi-directional Bar Chart
  • Multi-set Bar Chart
  • Donut Chart
  • Heatmap
  • Choropleth Map
  • Funnel Chart
  • K-Chart
  • Gauge Chart
  • Contour Line Chart
  • Bullet Chart
  • Sankey Diagram
  • Chord Diagram

Radial Bar Chart

Previous
Histogram Chart
Next
Stacked Bar Chart

Resources

Ant Design
Galacea Effects
Umi-React Application Framework
Dumi-Component doc generator
ahooks-React Hooks Library

Community

Ant Financial Experience Tech
seeconfSEE Conf-Experience Tech Conference

Help

GitHub
StackOverflow

more productsMore Productions

Ant DesignAnt Design-Enterprise UI design language
yuqueYuque-Knowledge creation and Sharing tool
EggEgg-Enterprise-class Node development framework
kitchenKitchen-Sketch Tool set
GalaceanGalacean-互动图形解决方案
xtechLiven Experience technology
© Copyright 2025 Ant Group Co., Ltd..备案号:京ICP备15032932号-38

Loading...

radial-bar

Introduction to Radial Bar Charts

The Radial Bar Chart (also known as Circular Bar Chart) is an affine transformation of a bar chart from Cartesian coordinate system to polar coordinate system. Its meaning and usage are similar to Bar Charts.

The Radial Bar Chart has a radius feedback effect. Since the radial bar chart uses angle to represent the size of each ring's value, the angle is the determining factor. So, even if the value of the outer ring (larger radius) is smaller than the inner ring (smaller radius), each outer ring will appear relatively longer than the inner rings. This can cause visual misunderstanding.

Moreover, because our visual system is better at comparing straight lines, the Cartesian coordinate system is more suitable for comparing the numerical values of different categories. Therefore, from a practical perspective, radial bar charts are more of an aesthetic need.

Other Names: Circular Bar Chart

Components of a Radial Bar Chart

radial-bar-structure
Chart TypeRadial Bar Chart
Suitable DataList: one categorical data field, one continuous data field
FunctionDisplay comparison of categorical data values in an aesthetic way
Data-Visual MappingCategory field maps to circular position
Value field maps to arc length (angle)
Colors can distinguish different categories
Suitable Data VolumeNo more than 15 data points

A complete radial bar chart contains the following elements:

  • Rings: Angle represents values
  • Text: Values and category names

Use Cases of Radial Bar Charts

Suitable Use Cases

Example 1: Displaying categorical data comparison (requires sorting)

The chart below shows the level of American public concern about different areas of US-China issues.

IssueAttention Rate
Taiwan Relations0.21
China's Growing Military Power0.47
China's Impact on Global Environment0.49
US Trade Deficit with China0.52
China's Human Rights Policy0.53
Cyber Attacks from China0.54
China Taking Away American Jobs0.60
China Holding US Massive Debt0.67

import { Chart } from '@antv/g2';
const chart = new Chart({
container: 'container',
theme: 'classic',
width: 1000,
height: 700,
});
chart.options({
type: 'interval',
data: [
{ question: 'Taiwan Relations', percent: 0.21, odd: 0 },
{ question: 'China\'s Growing Military Power', percent: 0.47, odd: 1 },
{ question: 'China\'s Impact on Global Environment', percent: 0.49, odd: 0 },
{ question: 'US Trade Deficit with China', percent: 0.52, odd: 1 },
{ question: 'China\'s Human Rights Policy', percent: 0.53, odd: 0 },
{ question: 'Cyber Attacks from China', percent: 0.54, odd: 1 },
{ question: 'China Taking Away American Jobs', percent: 0.60, odd: 0 },
{ question: 'China Holding US Massive Debt', percent: 0.67, odd: 1 }
],
coordinate: { type: 'radial', innerRadius: 0.2 },
encode: {
x: 'question',
y: 'percent',
color: 'odd'
},
scale: {
color: {
range: ['rgb(211,0,57)', 'rgb(224,74,116)']
},
y: { domain: [0, 1] }
},
style: {
radiusTopLeft: 4,
radiusTopRight: 4
},
label: {
text: 'percent',
position: 'inside',
style: {
fontWeight: 'bold',
fill: 'white'
}
},
axis: {
x: {
label: {
autoRotate: true,
autoEllipsis: true,
style: {
fontSize: 10
}
}
},
y: {
label: false,
grid: false
}
},
interaction: [
{
type: 'elementHighlight',
background: true,
},
],
});
chart.render();

Example 2: Displaying country data comparison

The chart below shows the percentage of people in each country who think climate change is a serious problem.

import { Chart } from '@antv/g2';
const chart = new Chart({
container: 'container',
theme: 'classic',
width: 1200,
height: 800,
});
chart.options({
type: 'interval',
data: [
{ country: 'China', percent: 0.18, condition: 'Special' },
{ country: 'Russia', percent: 0.33, condition: 'Normal' },
{ country: 'UK', percent: 0.41, condition: 'Normal' },
{ country: 'USA', percent: 0.45, condition: 'Normal' },
{ country: 'South Korea', percent: 0.48, condition: 'Normal' },
{ country: 'Canada', percent: 0.51, condition: 'Normal' },
{ country: 'Germany', percent: 0.55, condition: 'Normal' },
{ country: 'Vietnam', percent: 0.69, condition: 'Normal' },
{ country: 'Brazil', percent: 0.86, condition: 'Normal' }
],
coordinate: {
type: 'radial',
innerRadius: 0.3,
startAngle: -Math.PI,
endAngle: -0.25 * Math.PI
},
encode: {
x: 'country',
y: 'percent',
color: 'condition'
},
scale: {
color: {
range: ['#2370AE', '#A34265', '#505051']
}
},
style: {
radiusTopLeft: 2,
radiusTopRight: 2
},
label: {
text: 'percent',
position: 'inside',
style: {
fontWeight: 'bold',
fill: 'white',
fontSize: 10
}
},
axis: {
x: {
label: {
autoRotate: true,
autoEllipsis: true,
style: {
fontSize: 12
}
}
},
y: {
label: false,
grid: false
}
},
interaction: [
{
type: 'elementHighlight',
background: true,
},
],
});
chart.render();

Unsuitable Use Cases

Example 1: Unsorted data can be misleading

As mentioned in the introduction, radial bar charts have a radius feedback effect. Visually, rings with larger radius will appear bigger, while those with smaller radius appear smaller. This can cause misuse of radial bar charts. Therefore, we believe that radial bar charts must be sorted when used.

The following shows a comparison between incorrect and correct usage:

Incorrect Example (Unsorted):

import { Chart } from '@antv/g2';
const chart = new Chart({
container: 'container',
theme: 'classic',
width: 1000,
height: 700,
});
chart.options({
type: 'interval',
data: [
{ country: 'Brazil', percent: 0.86, condition: 'Normal' },
{ country: 'Vietnam', percent: 0.69, condition: 'Normal' },
{ country: 'Germany', percent: 0.55, condition: 'Normal' },
{ country: 'Canada', percent: 0.51, condition: 'Normal' },
{ country: 'South Korea', percent: 0.48, condition: 'Normal' },
{ country: 'USA', percent: 0.45, condition: 'Normal' },
{ country: 'UK', percent: 0.41, condition: 'Normal' },
{ country: 'Russia', percent: 0.33, condition: 'Normal' },
{ country: 'China', percent: 0.18, condition: 'Special' }
],
coordinate: {
type: 'radial',
innerRadius: 0.2,
startAngle: -Math.PI,
endAngle: -0.25 * Math.PI
},
encode: {
x: 'country',
y: 'percent',
color: 'condition'
},
scale: {
color: {
range: ['#2370AE', '#A34265', '#505051']
}
},
style: {
radiusTopLeft: 2,
radiusTopRight: 2
},
axis: {
x: {
label: {
autoRotate: true,
autoEllipsis: true,
style: {
fontSize: 10
}
}
},
y: {
label: false,
grid: false
}
},
interaction: [
{
type: 'elementHighlight',
background: true,
},
],
});
chart.render();

In the incorrect example above, due to unsorted data, the outer ring Brazil (0.86) will visually appear much larger than the inner ring China (0.18), but this visual difference will be further amplified by the radius effect, causing misleading interpretations.

Extensions of Radial Bar Charts

Grouped Radial Bar Charts

You can use colors or grouping to display multi-dimensional data comparisons:

import { Chart } from '@antv/g2';
const chart = new Chart({
container: 'container',
theme: 'classic',
width: 1000,
height: 700,
});
chart.options({
type: 'interval',
data: [
{ category: 'Product A', value: 85, quarter: 'Q1' },
{ category: 'Product B', value: 75, quarter: 'Q1' },
{ category: 'Product C', value: 65, quarter: 'Q1' },
{ category: 'Product D', value: 55, quarter: 'Q1' },
{ category: 'Product E', value: 45, quarter: 'Q1' },
],
coordinate: { type: 'radial', innerRadius: 0.2 },
encode: {
x: 'category',
y: 'value',
color: 'category'
},
scale: {
y: { domain: [0, 100] }
},
style: {
radiusTopLeft: 8,
radiusTopRight: 8
},
label: {
text: 'value',
position: 'inside',
style: {
fontWeight: 'bold',
fill: 'white'
}
},
axis: {
x: {
label: {
autoRotate: true,
autoEllipsis: true,
style: {
fontSize: 10
}
}
},
y: {
label: false,
grid: false
}
},
interaction: [
{
type: 'elementHighlight',
background: true,
},
],
});
chart.render();

Comparing Radial Bar Charts to Other Charts

Radial Bar Charts and Bar Charts

  • Radial Bar Charts: Use polar coordinate system, represent values through arc length, more visually appealing, but have radius feedback effect with lower accuracy in data comparison
  • Bar Charts: Use Cartesian coordinate system, represent values through rectangle length, more accurate and intuitive for data comparison

Radial Bar Charts, Line Charts, and Pie Charts

  • Radial Bar Charts: Display absolute values of different categories
  • Pie Charts: Display proportional relationships of categories within the total
  • Line Charts: Display trends and changes over time or continuous variables

Radial Bar Charts and Nightingale Charts (Rose Diagrams)

  • Radial Bar Charts: Focus on single-dimension numerical comparison of categories
  • Nightingale Charts: Display comprehensive performance across multiple dimensions

Similar Charts

Categories

Bar Chart
Bar Chart
Comparison
Stacked Bar Chart
Stacked Bar Chart
Comparison
Proportion
Multi-set Bar Chart
Multi-set Bar Chart
Comparison
Comparison