ggvis vs. ggplot2 + Shiny; インタラクティブな視覚化のためにどちらを選択しますか?


10

こちらのCrossValidatedにも同様の質問があり、その回答を読みました。私の質問は少し異なります。データを視覚化するだけではなく、視覚化したいものをどちらのパッケージでも視覚化するのは簡単ではありません。

プロットに2セットのポイント(座標)があります。エッジを追加して、グラフのようにします。ポイントがある場合、問題の性質に基づいて、プロットに(n / 2)^ 2エッジを追加する必要があります。x,yn(n/2)2

次に、いくつかのインタラクティブな機能をプロットに追加します。たとえば、1つの点(頂点)をクリックすると、このクリックされた頂点に接続されていない他のすべての頂点が非表示になり、より明確で焦点の合ったプロットが表示されます。

自分のプロジェクトに適したネットワーク視覚化パッケージを見つけようとしましたが、すべてがエッジまたはノードの接続に関するデータを使用し、特定のレイアウトアルゴリズムに基づくネットワークを提供しているようです。データが違います。ノードの座標があり、それらの間にいくつかのエッジを確立したいと思います。私のデータでは、ノードには独自の固定位置があり、移動することはできません。

最後に、パッケージをggvisおよびに絞り込みましたggplot2ggvisインタラクティブなプロットを生成するための意図的な設計に加えて、新しくて新鮮です。しかし、それggplot2+Shinyがインタラクティブなプロットを生み出すこともできることを知りました。(それは正しいですか?)さらに、私ggplot2はの機能がより多様で成熟していると考えましたggvis。たとえばggplot2、ズーム機能はあるものの、ズーム機能はありggvisません。さらに重要なのは、ggvis成長して変化しているように、1年ほどで技術的に陳腐化したりバグが発生したりする作業に多くの時間を費やしたくないということです。私がに基づいてコーディングした場合、これが事実だと思いましたggvis

では、私の選択(ggplot2+shiny)を評価して、私がやりたいことを実行する可能性について教えてください。

言及されたパッケージのどれも知らなかったので、私はggplot2ウィッカムの本から学び始めました、そしてそれは大好きです!しかし、私は数週間を費やして、この驚くべきパッケージがの助けを借りてもやりたいことを実行できないことを知って恐れていますShiny

PS:可能性のあるユーザーがダウンロードして実行できるように、最終的なコードをgithubに配置したいと考えています。したがって、ウェブアプリケーションを作成する必要はありません。ウェブサイトやインタラクティブマップをオンラインにする必要はありません。Rstudioの内部から実行できるインタラクティブなプロットが必要です。


サイトへようこそ!あなたはigraphD3 を試しましたか?
Dawny33

ありがとう!igraphが私にできることを確認しましたが、持っているデータと一致していませんでした。私が理解している限り、igraphは、接続された頂点のデータ(またはエッジに関する同様のデータ)に基づいてネットワークを視覚化します。いくつかのアルゴリズムと優先順位に基づいて、igraphは与えられたデータと互換性のあるプロット上の頂点を見つけます。しかし、頂点を、データセットにある対応する座標に正確に配置したいと考えています。パッケージのレイアウトと場所を選択したくありません。
Shahin、2016年

なぜd3js.orgではないのですか?非常に特別な要件があるようです。D3を使用すると、SVGを非常に簡単に操作できます。
Ricardo Cruz

ゲフィを試しましたか?
2016

CrossValの質問へのリンクを提供していただけませんか。
ジム

回答:


4

さて、この援助要請から何ヶ月も経ちました。私の経験を共有するために、私は自分の要求にこの回答を書きます。学んだしggplot2、それggvisからShinyShiny両方で機能しますが、にggvis比べて構造的で明快ggplot2です。前者として期待できるものは、後者の開発経験に基づいて開発されている。さらに、クイックグラフ/チャートの生成ggvisよりもはるかに高速ggplot2であるように見えますが、「シャイニー」やアプレットの作成にはるかに適しているようです。ただし、ggvisパッケージが開発中であり、まだ成熟していないため、多くの機能が不足していることが欠点です。

そして、ここのコメントに感謝します。チェックしましたがGephi、役に立ちません。非常にうまく機能するアプレットを作成しましたが、d3jsすでに示唆しているように、ようやくもっと強力なツールを使用する必要があるというこの時点に達しました。


0

時間が飛ぶ!2年の実務経験の後、私は自分の質問に答えて、Shiny、R、およびインタラクティブな視覚化をよりよく理解しています。

Plotlyは断然最良の答えです。これは、ggplot2静的プロットのggplotly()変換によって、またはPlotly関数の背後にあるロジックを直接学習することによって、簡単に使用できます。

後者のケースは、さまざまなプロットを持つアプリケーションに推奨されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.