I finished and submitted my version to the FEX: schemaball and will update the link asap.
There are a some differences with Gunther Struyf's contribution:
- You can return the handles to the graphic object for full manual customization
- Labels are oriented to allow maximum left-to-rigth readability
- The figure stretches to fit labels in, leaving the axes unchanged
- Syntax requires only correlations matrix (but allows optional inputs)
- Optimized for performance.
Follow examples of demo, custom labels and creative customization.
Note: the first figure was exported with saveas()
, all others with export_fig
.
schemaball

x = rand(10).^3;
x(:,3) = 1.3*mean(x,2);
schemaball(x, {'Hi','how','is','your','day?', 'Do','you','like','schemaballs?','NO!!'})

h = schemaball;
set(h.l(~isnan(h.l)), 'LineWidth',1.2)
set(h.s, 'MarkerEdgeColor','red','LineWidth',2,'SizeData',100)
set(h.t, 'EdgeColor','white','LineWidth',1)

The default colormap:

To improve on screen rendering you can launch MATLAB with the experimental -hgVersion 2
switch which produces anti/aliased graphics by default now (source: HG2 update | Undocumented Matlab). However, if you try to save the figure, the file will have the usual old anti-aliased rendering, so here's a printscreen image of Gunther's schemaball:
