web-dev-qa-db-ja.com

ggplot2でqplot()とggplot()を選択する

私は素晴らしいggplot2 Rでプロットするためのパッケージで、各プロットの前に最初に自問することの1つは"まあ、qplotまたはggplotを使用しますか?"

qplotはよりシンプルな構文を提供し、ggplotは最大限の機能と柔軟性を提供することを理解していますが、最もよく使用する機能は何ですか?また、それぞれに正確なユースケースがありますか?複雑なプロットにのみ主にqplotggplotを使用しますか、それともggplotを毎回使用しますか?

ご意見ありがとうございます !

97
juba

私に関しては、qplotとggplotの両方が利用可能な場合、基準はデータがdata.frameに格納されているか、別の変数に格納されているかによって異なります。

x<-1:10
y<-rnorm(10)

qplot(x,y, geom="line") # I will use this
ggplot(data.frame(x,y), aes(x,y)) + geom_line() # verbose

d <- data.frame(x, y)

qplot(x, y, data=d, geom="line") 
ggplot(d, aes(x,y)) + geom_line() # I will use this

もちろん、より複雑なプロットにはggplot()が必要で、通常はdata.frameにデータを保存するため、経験上、qplotはほとんど使用しません。

そして、常にggplot()を使用するのは良いことです。 qplotは入力を節約しますが、多くの機能を失います。

79
kohske

私はRが初めてですが、これを共有することを考えました。

 a <- c(1,2,3)

 b <- c(2,3,4)

 x <- qplot(a,b)

 y <- ggplot(data.frame(a,b), aes(a,b)) +geom_line()

変数aおよびbの値を変更してからxをプロットすると、yが変更しない場合に変更された値が考慮されます。したがって、スクリプトを作成するとき、qplotを使用するかのようにggplotを使用すると、すべてのグラフがqplotに提供された最新の参照と等しくなります。

17
anishek

Ggplot2を使用する頻度と目的に依存すると思います。

出版物のグラフィックには主にggplot2を使用しています。これは、私がより高度な機能を必要とする傾向があることを意味するため、qplotについて学習することはありません。また、私は年間約4つの出版物を持っているので、構文に本当に慣れるのに十分なggplot2を使用していないため、単一の側面に集中することが最適のようです。

ただし、毎週新しいデータセットを取得する場合は、データセットをすばやく探索することに関心があると思われますおよび良質のプロットを作成します。この場合、両方を学びます。構文で十分な練習ができ、(最終的に)qplotで時間を節約できます。

11
csgillespie

ジュバ、私はqplotを最も基本的なプロットのニーズに使用できることを発見しました。それは十分に単純で、デフォルトは非常に合理的で、私は学部生にそれを排他的に使用させ、彼らは限られた経験で素晴らしいプロットを作成することができます。また、qplot [p <-qplot(etc)]によって作成されたプロットは、ggplot2が提供するすべてのコマンドで変更できます。これは便利です(作成方法に関係なく、すべて同じ方法で保存されます)。個人的には、ほとんどすべてにqplotを使用し、関数内でggplotを保存します。

8
Bryan Hanson
  • 入力ベクトルを扱う場合、qplotが最も簡単な選択です
  • ggplotでは、入力データ構造としてdata.frameが必要です。

ヒストグラムを作成する場合、qplotは発生のベクトルのみを必要とします

#rnorm 
x <- rnorm(10)

#ggplot2 package: qplot
qplot(x, geom="histogram")

#ggplot2: using straight ggplot (requires conversion to data.frame)
ggplot(data.frame(x), aes(x)) + geom_histogram()
5
natbusa

私からもう1つの変種:コンソールに直接入力するときにqplotを使用し、スクリプトを記述するときにggplotを使用します。しかし、15分前にコンソールに入力したプロットを再作成したいということを何度も何度も繰り返した後、今ではほとんどすべてをスクリプトに記述しています。そのため、ほとんどの場合ggplotを使用しています。

(答えの多様性を見るのは面白い!)

3
Matt Parker