如何将相关矩阵可视化为Matlab中的模式球

jje*_*omi 42 matlab plot visualization correlation graph-visualization

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

SCHEMABALL

在此输入图像描述

在图片中,变量之间的每个抛物线将意味着它们之间的相关强度.线越粗,相关性越大.我比图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)

在此输入图像描述

  • 谢谢,毕竟它比我初想的容易:p (2认同)
  • @horchler我刚刚测试了那个'LineSmoothing`标志,但它没有那么大的改变,说实话上看不出差别.这就是为什么我建议你导出它时使用矢量格式.我使用这些方法的经验非常好:[链接](http://stackoverflow.com/questions/13788168/matlab-export-plot-to-vector-format/13788467#13788467) (2认同)

Ole*_*leg 24

我完成并将我的版本提交给FEX:schemaball,并将尽快更新链接.

Gunther Struyf的贡献有一些差异:

  1. 您可以将句柄返回到图形对象以进行完全手动自定义
  2. 标签的定向是允许最大的从左到右的可读性
  3. 该图伸展以适合标签,使轴保持不变
  4. 语法只需要相关矩阵(但允许可选输入)
  5. 针对性能进行了优化.

关注演示,自定义标签和广告素材自定义的示例.注意:第一个数字是导出的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的打印屏幕图像:

在此输入图像描述


And*_*uri 5

重要更新:

您现在可以使用FileExchange提交在Matlab中执行此操作:

http://www.mathworks.com/matlabcentral/fileexchange/48576-circulargraph

这里有Matlab的例子:

http://uk.mathworks.com/examples/matlab/3859-circular-graph-examples

这给了这种美丽的情节:

在此输入图像描述

在此输入图像描述