Выбор между qplot () и ggplot () в ggplot2 [закрыто]

98

Я начинаю использовать отличный ggplot2пакет для построения графиков в R, и одна из первых вещей, которые я задаю себе перед каждым графиком, это «хорошо, я буду использовать qplotили ggplot

Я понимаю, что это qplotобеспечивает более простой синтаксис, но ggplotобеспечивает максимальную функциональность и гибкость, но какую функцию вы используете чаще всего, и есть ли у вас конкретные варианты использования для каждой из них? Используете ли вы в основном qplotи ggplotтолько для сложных сюжетов или ggplotвсегда?

Спасибо за ваш отзыв !

Джуба
источник

Ответы:

81

Как по мне, если доступны и 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 экономит набор текста, вы теряете много функций.

Коске
источник
2
Принимаю, даже если каждый ответ полезен, всем спасибо!
juba
Отличный вопрос и отличный ответ.
d8aninja
превосходный ответ, действительно спасибо
Homam Bahrani
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.

анишек
источник
11

Я думаю, это зависит от того, как часто и с какой целью вы собираетесь использовать ggplot2.

В основном я использую ggplot2 для графики в публикациях. Это означает, что мне нужны более продвинутые функции, поэтому я никогда не удосужился узнать о них qplot. Кроме того, поскольку у меня есть около четырех публикаций в год, я не использую ggplot2 в достаточной степени, чтобы чувствовать себя комфортно с синтаксисом, и поэтому сосредоточение внимания на одном аспекте кажется оптимальным.

Однако, если вы получаете новые наборы данных каждую неделю, вы, вероятно, заинтересованы в быстром изучении наборов данных и построении графика хорошего качества. В этом случае изучите оба. Вы получите достаточно практики с синтаксисом и (в конечном итоге) сэкономите время с qplot.

csgillespie
источник
8

Джуба, я обнаружил, что qplot можно использовать для большинства основных задач построения графиков. Это достаточно просто, а настройки по умолчанию вполне разумны, так что мои студенты используют его исключительно, и они могут создавать отличные графики с ограниченным опытом. И график, созданный qplot [p <- qplot (etc)], может быть изменен любой из полных команд, предоставляемых ggplot2, что удобно (все они хранятся одинаково, независимо от того, как они были созданы). Так что лично я использую qplot почти для всего и сохраняю ggplot для внутренних функций.

Брайан Хэнсон
источник
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()
Натбуса
источник
3

Еще один вариант от меня: использую, qplotкогда печатаю прямо в консоли, и ggplotкогда пишу скрипты. Но после того, как я снова и снова обнаружил, что хочу воссоздать график, который я ввел в консоль 15 минут назад, я теперь записываю почти все их в сценарий, поэтому я использую ggplot почти все время.

(Интересно увидеть разнообразие ответов!)

Мэтт Паркер
источник