Rでプロットする場合、ggplot2またはggvisを学習する必要がありますか?どちらかが優れている場合は、必ずしも両方を学びたいとは限りません。Rコミュニティが機能が重複する新しいパッケージを作成し続けるのはなぜですか?紹介ブログ投稿洗練されたプロットパッケージggplot2がすでに存在することを考えると、なぜggvisが作成されるのかについては言及されていません。

コメント

  • ggvisはまったく異なる魚のやかんです。本当の選択肢は、ggplotと格子の間です。
  • 答えはあなたが何をしているのかによって異なると思います' reafter。'静的な高度なプロットを探している場合は、' ggplot2。ウェブの視覚化については、ggvisを検討してください。

回答

ggplot2から始めます。静的プロットを作成します。

静的プロットとは別に、ggvisを使用してインタラクティブプロットを作成することもできます。 ggplot2の構文を学習した場合、インタラクティブ機能を追加してggivsプロットを作成するための構文は自然に続きます。

コメント

  • これは不正確です(多分執筆時点では正確でした)。 ggvisは間違いなく静的プロットの作成に使用できます。インタラクティブなプロットも可能にするという事実は機能であり、制限ではありません。静的プロットの簡単な例:library('ggvis'); mtcars %>% ggvis(~wt, ~mpg) %>% layer_points(fill = ~factor(cyl))

回答

Dianne Cookの回答を少し拡張したいと思います。彼女が言ったように、ggplot2は静的プロットを作成するためのものであり、ggvisはインタラクティブプロットを作成するためのものです。それには多くの影響があります:

ファイルタイプ ggvisの出力はCSSとjavascriptファイルを含むHTMLです。ggvisは通常の画像ファイルを自然に出力しません。ggplot2は通常の画像を出力します。 HTML、pdf、gif、電子メールなどに埋め込まれている。ggvis、ファイルを電子メールで送信する場合は、ブラウザで表示するHTMLファイルのディレクトリを圧縮します。

アニメーションその結果、アニメーションを作成する場合は、 ggplot2のフレームをマージしますが、ggvisでこれを行う自然な方法はありません。インタラクティブに動作するggvisは「ライブ」をアニメーション化しますが、これらは異なる種類のアニメーションです。フレームごとにggvisが処理できるよりも多くのことが行われている場合、画像を生成してバックグラウンドでムービーを作成することによって(少なくとも自然な方法で)それを回避することはできません。同様に、ユーザーはggvisからムービーまたはgifファイルをダウンロードして再生することはできません。

現在のプロジェクトでは、ggplot2が遅すぎてインタラクティブにアニメーション化できないため、ggplot2からggvisに切り替えました。しかし、ユーザーが設定をいじった後、「移動」をクリックして、ユーザーが行ったことのフルスピードでスムーズなアニメーションのムービーをダウンロードできるようにしたいと思います。これを使用してこれを行う方法がわかりません。 ggvisですが、ggplot2を使用するとケーキになります。

速度 ggvisは、特にデータを変更する場合、ggplot2よりもはるかに高速です。各ggplot2プロットには、1秒または数秒の遅延があります。 ggvisは、最初にプロットを作成したときに1秒ほどあります。その後、データの変更はシームレスに行われます。ggvisはデータに「反応的に」リンクできるため、データが変更されるたびに自動的に更新されます。 ggplot2を使用すると、プロット全体が再描画されます。

スタイル&外観 ggplot2プロットは少し見える一見したところ、ggvisプロットよりも優れています。 ggplot2プロットは非常にエレガントです。 ggvisプロットはもっと単純ですが、私には成長しています。 xkcdパッケージやwesandersonパッケージなどのggplot2の拡張機能もあり、ggvisのアナログはありません。ggplot2プロットはすべて、同じ人物(ggplot2の作成者)によって作成されたように見え、しばらくすると疲れます。

完全性少なくともggvisがサポートしていない、ggplot2で作成できるプロットタイプがありますこれまでのところ。たとえば、ggvisには「ラグ」プロット要素はありません。ggvisで作成された1つまたは2つのコロプレスを見たことがありますが、自然な組み込みサポートはまだありません。ggplot2には極座標(つまり、円グラフ)があります。 、ggvisはありません。ggvisからも欠落しています(ggplot2またはggplot2拡張のいずれかで利用可能):ボックスプロット;輪郭プロット;自然ヒートマップ;自然相関チャート;ドットプロット;バイオリンプロット;ネットワークプロット;樹状図。もちろん、私は確信しています。非常に賢い人の中には、これらすべてをggvisで作成できる人もいますが、私はそれほど賢くはありません。

注釈 ggplot2には、非常に優れた、おそらく十分に活用されていない注釈フレームワークがあります。ggvisにはありません。

サブプロット&ファセット ggplot2は非常に優れています、しかしおそらくかなり限定された「ファセット」機能。グリッドパッケージを使用して、複数のggplot2プロットを組み合わせることもできます。今のところ、ggvisでもできません。 ggvisプロットを単一の画像に結合することはできません(画像ではないため、「ライブ」ウェブページであるため)。また、ファセットやサブプロットの種類もサポートしていません。これはパイプラインにあるはずです。

視覚的な柔軟性 ggplot2は、すべてのプロットが同じように見えることを望んでいます。つまり、作者がスタイル的に好むようです。たとえば、ggplot2に複数のy軸を持つプロットを作成する方法はありません。ggviscan。ggvisはggplot2よりもはるかに柔軟性があります。凡例を非表示にしたり、複数の凡例を1つに結合したり、異なるスケールを使用したりするのははるかに簡単です。同じプロット上のものなど。

詳細なカスタマイズ性たとえば、新しい巧妙なスケール。ggplot2でそれを行うのはそれほど難しくありません(かなり混乱しますが)。ggvisでそれを多く行う方法はないようです。多分それはまだです。

時系列 ggplot2は時系列をプロットするのが好きではありません。 できますが、したくない。実際には、どちらも望んでいません。どちらもdata.frameでデータをフィードすることを主張しており、処理できません。 xtsまたはzooオブジェクト。時系列をスライスするための組み込み機能もありません。しかし、ggvisはggplot2ほど激しく時系列に対して反撃しません。これは、ggvisプロットのデータを更新するのが非常に速いためだと思います。時系列をプロットする場合は、どちらかを打ち負かして提出する必要がありますが、ggvisは受動的攻撃的ではありません。 。

それらは同じ構文ですか?ある種…それらの間には多くの共通点があります。 、および一方のスタイルで考えることを学ぶと、もう一方のスタイルに適応するのに役立ちます。特に、両方とも、すべてのプロット呼び出しがすべて1行で相互にパイプされるように設計されています。コード。これの主な利点は、デバッグとプロファイリングが非常に難しくなり、基本的にRstudioなどのデバッグ/プロファイリング機能が役に立たなくなることです。それ以外は、構文がまったく異なります。 ggplot2で難しいことのいくつかは、ggvisでは簡単です。 ggplot2で簡単なことは、ggvisでは不可能です。およびその逆。 (私はggvisが物事を行う方法に少し好みがあり、理解しやすいと思います。)

バグ ggvisにはまだかなりの数があります。時々それはちょうど奇妙に振る舞います。ただし、回避策に何時間もかかり、ほとんど意味をなさない理由で、プロットがランダムに消えることがあります。開発者はこれを自由に認めていますが、ggvisはまだ本番環境に対応していません。複雑さに対処すると、 冗談ではないことがわかります。

結論:それぞれの中間プロットの学習には約16時間かかります。したがって、現実的には、おそらく両方を学習することになります。

コメント

  • 優れた比較
  • より高速なggvis、lattice、またはrglとは何ですか? (大規模なデータセットの場合)
  • +1の素晴らしい記事。これまでの両方の経験に基づいて、ここにあるすべてに同意します。
  • こんにちは、ggvisとrchartsはどうですか?
  • 時系列:ggplot2は拡張ggfortifyで決定的に勝ちます。 rpubs.com/sinhrks/basics の優れたドキュメントをご覧ください。

回答

library(ggvis)の後に表示されるメッセージは自明だと思います:

ggvisAPIは現在急速に進化しています。これを本番環境に依存しないことを強くお勧めしますが、自由に探索してください。明らかなバグに遭遇した場合は、 https://github.com/rstudio/ggvis/issues で再現可能な最小限の例を提出してください。質問やその他のディスカッションについては、 https://groups.google.com/group/ggvis を使用してください。

ggplot2と比較すると、ggvisにはまだいくつかの機能と洗練が欠けています(たとえば、グラフにタイトルを追加する方法がありません。たとえば、軸のタイトルが目盛りのラベルと重なっているなど、ファセットはサポートされていません)。一方、ggvis構文は少しすっきりしていて、インタラクティブ性は本当に素晴らしいです。

私自身の経験から、光沢のあるアプリを作成する場合はggvisが必須です。次に、WebとRに適したグラフプロットエンジンを使用することの利点は、現在の欠点を大幅に上回ります。

データ探索のために静的グラフを作成する場合、ggplot2は、多くの優れた機能を備え、ユーザーの健全なコミュニティと多くのリソースから学ぶことができる成熟したライブラリです。

両方のパッケージの背後にある哲学は類似しているため、スキルをあるパッケージから別のパッケージに非常に簡単に移すことができます。

回答

Rコミュニティは、さまざまな理由で新しい(そしてしばしば重複する)パッケージを考え続けています:

1)誰かが何かを変更したり、既存のパッケージでは利用できないものを追加したいが、その多くは重複している(したがって、リグレッションを実行する多くのパッケージ)

2)誰かが課題としてのパッケージ

3)パッケージを書くのは楽しいです(そのようなものが好きなら)

4)彼らは元のパッケージが存在することを知りません

コメント

  • 特定の例とポイント4に関して:ggvisはggplot2と同じ人によって作成されています。ここで重要な点は、ggplot2の使用が広まっているため、既存のコード/依存パッケージの多くを壊さずに変更を実装することが不可能になっていることです。
  • この種の既存のパッケージの再発明は、資本主義社会の景気後退のように起こりますか?
  • @Peter:Rの部外者として、これは公正なコメントのように思えますが、(最も珍しいことに)あなたは'質問に答えてください!
  • @NickCox質問にある質問の1つに答えました。 :-)。
  • @Peter非常に公平な点。 stats.stackexchange.com/questions/58966/ … への相互参照は、したがって適切だと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です