Rを使用して摩耗を視覚化する最良の方法は?


15

スルーこのサイト私は最近サンキーダイアグラム、で何が起こっているかを視覚化するのに最適な方法を発見してきた伝統的なフローチャートを。

以下は、ジョージM.ホワイトサイドとジョージW.クラブツリーエネルギーの長期的な基礎研究を忘れないでください ソースによるサンキー図の良い例です。2007年2月9日:エネルギー、科学の長期基礎研究を忘れないでください 315。5813、pp.796-798。

Sankey Rパッケージが存在しないことに気付いた後、オンラインRスクリプトを見つけましたが、残念ながらこのスクリプトはかなり生で、ある程度制限されています。stackoverflowSankey Rパッケージまたはより成熟した関数求めましたが、驚いたことに、RでSankey Diagramsを構築するための成熟した関数がないようです。

報奨金を投稿した後、Geek On Acidは、既存のスクリプトに小さなハック提案するのに十分なほど親切で、特定の目的で多かれ少なかれ機能しました。

改良されたRスクリプトにより、この図が作成されました Geek On AcidのR-Sankeyダイアグラムstackoverflow.com

しかし、Rパッケージがないことは、上記の図に示されているようなデータフローでRを使用して損耗を視覚化するのにSankey Diagramsがそれほど驚くべき方法ではないことを示しています(データとRコードの最初のstackoverflowの質問を参照してください。減耗を視覚化するより良い方法があります。

Rを使用してデータフローの減少を視覚化する最良の方法は何だと思いますか?


7
自動化された方法でダイアグラムをきれいに見せることは非常に困難です(最初の例は、アーティストがノードを手動で配置することによって行われた可能性が高い)。プログラミングが難しいことは、グラフィカルツールとしてのユーティリティとは関係ありません。フローの視覚化に関するGISサイトのこの私の投稿で、さらに動機付け見つけることができます。また、このサイトの回答で、解析とドットプロットの例をいくつか示します。
アンディW

@AndyW、非常に有用なコメントをありがとう。さまざまな方法を調査し、データを実験します。ありがとう。
エリックフェール

その上の図は素晴らしいアイデアですが、ソースの合計はシンクの合計と等しくないように見えます(高さはマグニチュードを表すと仮定)
-naught101

ああ..気にしないでください、私は間違って読みました...ソースの軽いビットは単なるラベルであり、データの一部ではありません。少し紛らわしい..
naught101

回答:


4

@gungに同意します。あなたが投稿したサンキー図は、このテクニックが役立つ場所のかなり良い例だと思います。複雑ですが、コンテキスト(エネルギーの入力と出力)も複雑であり、複数の使用カテゴリにわたって、入力から出力、新しい入力として動作するパスを視覚化するより良い方法を考えることは困難です。

さて、あなたが投稿した減損の例では、他の人がサンキー図を使用することは役に立たないと述べています。ただし、代替の視覚化に関する優れた推奨事項が必要な場合は、変数の完全なセットを投稿する必要があると思います。サイトと臨床医との間の減耗源の違いを単に表示したい場合、少数の一連のドットプロットは、聴衆が理解し、実装するのに最も簡単な場合があります(この例を参照してください。サイト、グループ内の要素が消耗の原因となり、横軸が0〜100%になります)。

Sankeyダイアグラムが使用したいものであり、別の高水準言語で手を出したい場合は、Pythonプロットパッケージmatplotlibのギャラリーに(コード付きの)良い例があります。


3

メソッドがないということは、そのメソッドが重要ではない、または役に立たないことを意味するとは限りません。結局のところ、Rに現在存在するすべてのメソッドについて、そのパッケージがなかった時期がありました(かなり最近のことかもしれませんが、Rはわずか10年前です)。

ただし、摩滅などのデータを視覚化する方法はいくつもあると思います。チャートを見て最初に考えたのは、ドットプロットで表すことができるということです。他の可能性も同様に存在します。Sankey Diagramの追加機能は、ある時点で特定の原因に起因する何らかの消耗があり、その後、他の入力と出力を間に挟む同じ原因起因する消耗がある場合に機能します。それは標準的なプロットで表現するのがより複雑になります(たとえば、サンキーダイアグラムであっても従うことは難しくなります。たとえば、ページの上部にあるダイアグラムを読むにはかなりの労力が必要です)。あなたはそれを持っていないように見えるので、サンキー図はきれいに見えますが、やり過ぎです。


1
最初に与えられたグラフィックは素晴らしいIMOです。一連のドットプロットで非常に直感的にキャプチャするのが難しい多くの詳細があります。また、Sankey Diagramはさまざまなノードとの間のフローを視覚化するのに適しています(使用済みエネルギーと損失エネルギーへの再結合)。
アンディW

@AndyW、私はその数字をノックするつもりはありません。主にb / cを読むには多くの情報が含まれています。それがあなたを引きつけ、しばらくそこにあなたを保持することは本当のプラスになる可能性があります-私は私の説明が否定的になることを意味しませんでした。OTOH、OPのデータは単純なプロットがそれらを伝えることができるほど単純明快です。
GUNG -復活モニカ

良い点は、OPのデータが与えられたものよりも複雑でない場合、おそらくそれが価値があるよりも厄介なことです!ただし、元のエネルギー図を一連のドットプロットに変換することは考えたくありません。
アンディW

@gung、私の投稿に返信していただきありがとうございます。私は同意します。メソッドの欠如は、そのメソッドが良くも有用でもないという決定的な兆候と見なされるべきではありません。サンキー図(SD)については間違いなくopを与えていません。私のデータに関しては、図に表示されているのはデータの最上位ディメンションのみです。4つの異なるサイトと7つの異なる臨床医によって収集されたデータがあります。フロー全体に細分化します。現在のデータでは過剰に見えるかもしれませんが、すべての変数を含めるとSDが役立つと思います。
エリックフェール

より複雑な場合は、おそらくSankeyダイアグラムが最善の策です。また、上記のリンクのような@AndyWの投稿のいくつかに目を通すことも価値があります。彼は関連するかもしれない多くの良い答えを与えました。たとえば、彼の名前をクリックしてページに移動し、そこでデータ視覚化タグをクリックすると、彼の投稿を確認できます。
GUNG -復活モニカ

1

Rコードを使用して、データに応じて矢印の幅を設定し、シンプルなレイアウトでSVGファイルを作成してください。次に、Inkscapeにロードして矢印を曲げ、ラベルなどを心のコンテンツに追加して、何かをきれいにします。

明らかな問題:データが変更された場合、Inkscapeですべての設定をやり直す必要があります(ただし、InkscapeのかわいいSVGをテンプレートとして使用し、新しい矢印の幅をそのまま使用できる場合もあります)。

しかし、正直に言うと、上部のむらのある色とりどりの波紋が良いサンキー図であるなら、私は満腹で悪いものを見たくありません(さらに数分間それを見つめていると、手がかりが得られますが)それが何であるか、良いグラフィックはそれを必要とすべきではない]。


2
そのデータを視覚化するより良い方法を見つけたいと思います。そのプロットには多くの情報(および複数の異なる変数)があるため、もちろん複雑になります
...-naught101

2
Dan Carrのマイクロマップは、グラフィック全体を消化するのに時間がかかります。詳細なロードマップも同様です。どちらも必ずしも悪いことではありません。James Chesireのブログ投稿「Fast Thinking and Slow Thinking Visualization」を参照してください。
アンディW
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.