Note: See our Chord Chart Gallery for inspiration on all the different chord chart possibilities.
In your chart object, add a type
attribute and set the value to chord
.
{ type: 'chord' }
Chord charts support data in the form of a series
array of objects.
Create a series
array of objects of length N. Within each of those objects, place a values
array with a length equal to the number of objects within the series
array.
{ type: 'chord' series: [ // Length N array of objects { values: [val1, val2, ..., valN] // Length N array of numbers }, { values: [val1, val2, ..., valN] } ..., { values: [val1, val2, ..., valN] } ] }
Customize how chord segments and bands display via the options
object.
The anglePadding
attribute sets the angle padding between two chord segments.
{ options: { anglePadding: 0 } }
In the chart below, compare 'anglePadding':0
with 'anglePadding':50
:
The bandSpace
attribute sets the space between the band and the chords.
{ options: { bandSpace: 10 } }
In the chart below, compare 'bandSpace':10
with 'bandSpace':50
:
The bandWidth
attribute sets the width of the band.
{ options: { bandWidth: 10 } }
In the chart below, compare 'bandWidth': 10
with 'bandWidth':50
:
The flat
attribute sets whether the chord's highlight effect (when hovering over the band) is enabled or not. Setting the flat
attribute to true
will disable the highlight effect when hovering over the band.
{ type: 'chord', options: { flat: true } }
The groupOffset
attribute sets an offset of the angle from which the chords are painted.
{ type: 'chord', options: { groupOffset: 100 } }
The groupPadding
attribute sets a radial space between the bands.
{ type: 'chord', options: { groupPadding: 110 } }
The hoverEffect
attribute specifies which elements to apply the hover effect on. The following options are:
{ options: { hoverEffect: 2 // default is `1` } }
The radius
attribute sets the radius of the chord. The value can be relative to the plotarea size.
{ options: { radius: 60 } }
In the chart below, compare radius: 120
with radius: 60
:
The sizeFactor
attribute sets the size factor to apply to the chart.
{ options: { sizeFactor: 0.5 } }
Chord charts also include a number of global stylings that allow you to manipulate the appearance and behaviors of your chord chart. They can be implemented into your chart by placing them within the options
object.
Note: For more styling options, browse our JSON Attributes/Syntax page.
The color-type
attribute sets the color algorithm used to color the items.
Setting 'colorType': 'random'
lets the library choose random colors each time the chart renders.
{ options: { colorType: 'random' } }
The color
attribute sets the color of the items when 'colorType': 'color'
is set. Provide a color, HEX, or RGB value.
{ options: { colorType: 'color' color: '#f90' } }
The palette
attribute defines a custom palette used by the items when 'colorType
is set to palette
. Provide a string of comma separated color, HEX, or RGB values.
{ options: { colorType: 'palette', palette: [ '#15252d', '#768766', '#e5db82', '#bb9944', '#bb6622', '#b1200f', '#342e3a' ] } }
The band
attribute defines the global or series styling for the band. To style globally, create a style
object and insert your band
object.
{ options: { style: { band: { borderWidth: 4, borderColor: '#900' } } } }
To style by series, create a style
object within the series
array you want to apply your styling to and insert your band
object.
{ series: [ { values: [6637,5700,4789,2771], text: 'A', style: { band: { 'border-width':4 } } } ] }
The chord
attribute defines the global or series styling for the chords. To style globally, create a style
object and insert your chord
object.
{ options: { style: { chord: { borderWidth: 4, borderColor: '#900' } } } }
To style by series, create a style
object within the series
array you want to apply your styling to and insert your chord
object.
{ series: [ { values: [6637,5700,4789,2771], text: 'A', style: { chord: { borderWidth: 4, borderColor: '#900' } } } ] }
The label
attribute defines the global or series styling for the labels. To style globally, create a style
object and insert your label
object.
Note: Learn more about labels with our Labels Tutorial and labels
JSON Configuration page.
{ options: { style: { label: { color: '#900' } } } }
To style by series, create a style
object within the series
array you want to apply your styling to and insert your label
object.
{ series: [ { values: [6637,5700,4789,2771], text: 'A', style: { label: { color: '#090' } } } ] }
The tick
attribute defines the global or series styling for the ticks. To style globally, create a style
object and insert your tick
object.
Note: Learn more about tick styling options with our tick
JSON Configuration page.
{ options: { style: { tick: { size: 6, lineColor: '#900' } } } }
To style by series, create a style
object within the series
array you want to apply your styling to and insert your label
object.
{ series: [ { values: [6637,5700,4789,2771], text: 'A', style: { tick: { size: 6 } } } ] }
The tooltip
attribute defines the global or series styling for the tooltips. To enable tooltips, you will need to add a tooltip
attribute to the band
and chord
objects.
To style tooltips globally, create a style
object and insert your tooltip
object.
Note: Learn more about tooltips with our Tooltips Tutorial and tooltip
JSON Configuration page.
{ options: { style: { tooltip: { borderWidth: 2, borderColor: '#900', backgroundColor: '#fc0' }, band: { tooltip: { text: 'Band of item %text' } }, chord: { tooltip: { textChord: 'Chord between %text-source (%value-source) and %text-destination (%value-destination)', text: 'Self-chord of item %text with value %value' } } } } }
To style by series, create a style
object within the series
array you want to apply your styling to and insert your tooltip
object.
{ series: [ { values: [6637,5700,4789,2771], text: 'A', style: { tooltip: { backgroundColor: '#090', color: '#fff' }, band: { tooltip: { text: 'Specific text for band of item %text' } }, chord: { tooltip: { textChord: '%text-source/%value-source links to %text-destination/%value-destination', text: '%text has value %value' } } } } ] }