使用Matlab间谍函数可视化稀疏度模式

lig*_*ist 4 matlab plot graph

Matlab有一个函数间谍,用于可视化图邻接矩阵的稀疏模式.

不幸的是,它没有通过考虑矩阵中值的大小来显示点.它使用具有相同强度的单一颜色来显示所有条目.

我希望显示相同的间谍情节,但是在热图中使用"颜色编码"这些点来表示条目的大小.我怎样才能做到这一点?

小智 5

spy函数使用plot,在lineseries对象中不能有不同的标记颜色.

另一方面,patch对象可以针对不同的顶点具有不同的标记颜色.patch最初用于绘制多边形,但没有面颜色和边缘颜色,可以得到类似的结果plot,没有线条样式.

S = bucky();
[m, n] = size(S);
[X, Y] = meshgrid(1:m, 1:n);
S = (X + Y) .* S;

nonzeroInd = find(S);
[x, y] = ind2sub([m n], nonzeroInd);

figure();
hp = patch(x, y, S(nonzeroInd), ...
           'Marker', 's', 'MarkerFaceColor', 'flat', 'MarkerSize', 4, ...
           'EdgeColor', 'none', 'FaceColor', 'none');
set(gca, 'XLim', [0, n + 1], 'YLim', [0, m + 1], 'YDir', 'reverse', ...
    'PlotBoxAspectRatio', [n + 1, m + 1, 1]);

colorbar();
Run Code Online (Sandbox Code Playgroud)

<code>colormap(flipud(hot))</code>.</p>

<p><img rel=