OpenChord is a Python library I am developing to plot beautiful chord diagrams for visualising networks and graphs. OpenChord uses the drawsvg
library and can display figures in a Jupyter notebook or Jupyter lab. Other libraries for drawing chord diagram includes PlotAPI (paid), Bokeh (visible moire artifact), and Plotly (tedious).
OpenChord is now on PyPI.org! Install using the command
pip install openchord
The chord diagram is defined by an adjacency matricies (possibly non-symmetric)
import openchord as ocd
adjacency_matrix = [[ 3, 18, 9, 0, 23],
[18, 0, 12, 5, 29],
[ 9, 12, 0, 27, 10],
[ 0, 5, 27, 0, 0],
[23, 29, 10, 0, 0]]
labels = ['Emma', 'Isabella', 'Ava', 'Olivia', 'Sophia']
fig = ocd.Chord(adjacency_matrix, labels)
fig.show()
Color can be changed like so
fig.colormap = ['#636EFA', '#EF553B', '#00CC96', '#AB63FA', '#FFA15A', '#19D3F3', '#FF6692', '#B6E880', '#FF97FF', '#FECB52']
fig.show()
You can export the figure as an .svg file and open it in a vector graphics software such as Inkscape
fig.save_svg("figure.svg")
I wrote a few more tutorials available via the link below and in the /examples
directory. Feel free to download them and run it yourself.
-
- First chord diagram
- Radius
- Padding
- Font size and font family
- Colormap
- Background color and transparancy
-
The Logo (The text is not centered vertically when viewed on GitHub)
- Rotation
- Custom plot area
- Gradient style
- Arc thickness
- Text position
- Gap size
- Ribbon gap
- Ribbon stiffness
- Save as SVG