42

42 個の変数があり、Matlab でそれらの相関行列を計算しました。次に、スキーマボールで視覚化したいと思います。Matlabでこれを行う方法について提案/経験はありますか? 次の写真は、私の要点をよりよく説明しています。

スキーマボール

ここに画像の説明を入力

写真では、変数間の各放物線は、変数間の相関の強さを意味します。線が太いほど、相関関係が高くなります。私は、相関関係の強さを強調するために異なる色を使用した写真 2 のスタイルよりも、写真 1 のスタイルを好みます。

4

5 に答える 5

25

私は自分のバージョンを完成させてFEX: スキーマボールに提出しました。リンクをできるだけ早く更新します。

Gunther Struyfの貢献とはいくつかの違いがあります。

  1. 手動で完全にカスタマイズするために、ハンドルをグラフィック オブジェクトに戻すことができます。
  2. ラベルは、左から右への読みやすさを最大限に高めるように配置されています
  3. Figure はラベルに合わせて伸縮し、軸は変更されません
  4. 構文には相関行列のみが必要です (ただし、オプションの入力は許可されます)
  5. パフォーマンスのために最適化されています。

デモ、カスタム ラベル、クリエイティブのカスタマイズのに従ってください。注: 最初の図は でエクスポートされsaveas()、他のすべての図は でエクスポートされました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)

ここに画像の説明を入力

デフォルトのカラーマップ:

ここに画像の説明を入力

画面レンダリングを改善するために-hgVersion 2、デフォルトでアンチ/エイリアス グラフィックスを生成する実験的なスイッチを使用して MATLAB を起動できます (ソース: HG2 update | Undocumented Matlab )。ただし、Figure を保存しようとすると、ファイルには通常の古いアンチエイリアス レンダリングが含まれるため、Gunther のスキーマボールのプリントスクリーン イメージを次に示します。

ここに画像の説明を入力

于 2013-06-14T15:10:49.617 に答える
3

偶然にも、Cleve Moler (MathWorks の主任数学者) は、彼の最新のブログ投稿でこの種のプロットの例を示しました(あなたの例ほど美しくはなく、接続線は放物線ではなく直線ですが、機能的に見えます) )。残念ながら、彼はコードを直接含めていませんでしたが、投稿にコメントを残せば、たいてい喜んで共有してくれます。

あなたにとってさらに良いことは、円周上でランダムに順序付けするのではなく、高度に接続されたノードの空間的近接性を最大化するために、配列の行/列を並べ替えるコードも適用する (そして今回はそれを含む) ことです。最終的には、接続線の「三日月」形のエンベロープができ、三日月の太いビットが最も高度に接続されたノードを表します。

残念ながら、サンプル プロットで非常に細く高解像度の線を取得するために彼のコードを拡張する必要がある場合、MATLAB の現在アンチエイリアス処理されていないグラフィックスはまだ十分に機能していないのではないかと思います。

于 2013-06-11T09:43:16.463 に答える
2

私は最近、同様のグラフについて MATLAB データとD3 可視化ライブラリを試しています。関連するタイプの循環可視化がいくつかあり、それらの多くはインタラクティブです。もう 1 つの便利でよくできていて、自由に利用できるオプションはCircos です。これは、一般的な報道で見たこれらのグラフのよりきれいなバージョンのほとんどを担っていると思われます。

于 2013-06-24T19:59:15.643 に答える