在ggplot2中选择qplot()和ggplot()

时间:2011-03-16 08:46:04

标签: r ggplot2

我开始使用伟大的ggplot2包在R中进行绘图,在每个绘图之前我问自己的第一件事就是“好吧,我会使用qplot或者ggplot?“

我理解qplot提供了更简单的语法,而ggplot允许最大的功能和灵活性,但您最常使用的功能是什么,并且每个都有一些精确的用例吗?您是否仅将qplotggplot用于复杂图表,还是每次都使用ggplot

感谢您的反馈!

6 个答案:

答案 0 :(得分:79)

就我而言,如果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可以节省打字,但是你会失去许多功能。

答案 1 :(得分:17)

我是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则不会。因此,在编写脚本时,使用ggplot会很好,就像使用qplot一样,所有图形都将等于最新提供的对qplot的引用。

答案 2 :(得分:11)

我认为这取决于您打算使用ggplot2的频率和目的。

我主要在出版物中使用ggplot2作为图形。这意味着我倾向于需要更高级的功能,因此我从未费心去了解qplot。此外,由于我每年大约有四个出版物,我没有足够使用ggplot2语法,所以专注于单一方面似乎是最佳的。

但是,如果您每周都会获得新的数据集,那么您可能有兴趣快速浏览数据集以生成高质量的绘图。在这种情况下,学习两者。您将获得足够的语法练习,并最终节省qplot的时间。

答案 3 :(得分:8)

朱巴,我发现人们可以使用qplot来满足大多数基本的绘图需求。这是非常简单,默认是非常合理的,我让我的本科学生专门使用它,他们可以制作出有限经验的优秀情节。由qplot [p&lt; - qplot(etc)]创建的图可以通过ggplot2提供的任何完整命令进行修改,这很方便(无论它们是如何创建的,它们都以相同的方式存储)。所以我个人使用qplot来处理大多数事情,并为函数内部保存ggplot。

答案 4 :(得分:5)

  • 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 :(得分:3)

我的另一个变体:当我直接在控制台中输入时使用qplot,在编写脚本时使用ggplot。但是经过一遍又一遍地发现我想重新创建一个我在15分钟前输入控制台的情节,我现在几乎把所有这些都写成了一个脚本 - 所以我几乎都在使用ggplot。

(有趣的是看到答案的多样性!)