我开始使用伟大的ggplot2
包在R中进行绘图,在每个绘图之前我问自己的第一件事就是“好吧,我会使用qplot
或者ggplot
?“
我理解qplot
提供了更简单的语法,而ggplot
允许最大的功能和灵活性,但您最常使用的功能是什么,并且每个都有一些精确的用例吗?您是否仅将qplot
和ggplot
用于复杂图表,还是每次都使用ggplot
?
感谢您的反馈!
答案 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)
答案 4 :(得分:5)
当您想要生成直方图时,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。
(有趣的是看到答案的多样性!)