jje*_*omi 42 matlab plot visualization correlation graph-visualization
我有42个变量,我在Matlab中为它们计算了相关矩阵.现在我想用一个模式球来形象化它.有没有人有任何建议/经验如何在Matlab中完成?以下图片将更好地解释我的观点:


在图片中,变量之间的每个抛物线将意味着它们之间的相关强度.线越粗,相关性越大.我比图2中的风格更喜欢图片1的风格,在那里我使用了不同的颜色来突出相关的强度.
Gun*_*uyf 24
有点完成我猜..代码可以在github找到.文档包含在文件中.
黄色/洋红色(用于正/负相关)是可配置的,以及标签的字体大小和标签的绘制角度,因此如果您需要并且不能沿周边均匀分布它们,您可以获得幻想/小组一些/ ...
如果你想实际打印这些图形或在matlab外部使用它们,我建议使用矢量格式(例如eps).放大/缩小文本时调整文本也很烦人,但我不知道如何在不破解缩放功能的情况下解决这个问题:/
schemaball % demo
Run Code Online (Sandbox Code Playgroud)

schemaball(arrayfun(@num2str,1:10,'uni',false), rand(10).^8,11,[0.1587 0.8750],[0.8333 1],2*pi*sin(linspace(0,pi/2-pi/20,10)))
Run Code Online (Sandbox Code Playgroud)

schemaball(arrayfun(@num2str,1:50,'uni',false), rand(50).^50,9)
Run Code Online (Sandbox Code Playgroud)

Ole*_*leg 24
我完成并将我的版本提交给FEX:schemaball,并将尽快更新链接.
Gunther Struyf的贡献有一些差异:
关注演示,自定义标签和广告素材自定义的示例.注意:第一个数字是导出的saveas(),其他所有的都是export_fig.
schemaball
Run Code Online (Sandbox Code Playgroud)

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

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)
Run Code Online (Sandbox Code Playgroud)

默认的colormap:

为了改进屏幕渲染,您可以使用实验-hgVersion 2开关启动MATLAB,现在默认生成反/混叠图形(来源:HG2更新|未记录的Matlab).但是,如果您尝试保存图形,该文件将具有通常的旧抗锯齿渲染,因此这是Gunther的schemaball的打印屏幕图像:

重要更新:
您现在可以使用FileExchange提交在Matlab中执行此操作:
http://www.mathworks.com/matlabcentral/fileexchange/48576-circulargraph
这里有Matlab的例子:
http://uk.mathworks.com/examples/matlab/3859-circular-graph-examples
这给了这种美丽的情节:

