Вы можете сделать это с помощью ggplot2
, используя facets
. Когда я читаю «Я хочу создать график, в котором точки данных группируются, как определено фактором» , первое, что мне пришло в голову, было facets
.
Но в данном конкретном случае более быстрая альтернатива должна быть:
plot(as.numeric(trans.factor), casp6)
А потом вы можете поиграть с опциями заговора (type
, fg
, bg
...), но я рекомендую придерживаться ggplot2
, так как в нем гораздо более чистый код, отличная функциональность, вы можете избежать перплотинг ... и т. д. и т. д.
Узнайте, как бороться с факторами. Вы получили барплот при оценке plot(trans.factor, casp6)
, потому что trans.factor
был классом factor
(по иронии судьбы, вы даже назвали его в таком поместье) ... и trans.factor
, как таковой, был объявлен до непрерывная (числовая) переменная в функции plot()
... следовательно, plot()
"чувствует" необходимость поднабора данных и построения блокпоста на основе каждой части (если вы сначала объявите непрерывную переменную, вы получите обычный график, верно ?). ggplot2
, с другой стороны, интерпретирует фактор по-другому ... как "обычная" , числовая переменная (это означает синтаксис, предоставленный Jonathan Chang , вы должны укажите geom
при выполнении чего-то более сложного в ggplot2
).
Но давайте предположим, что у вас есть одна непрерывная переменная и фактор, и вы хотите применить гистограмму к каждой части непрерывной переменной, определенной уровнями факторов. Вот где все усложняется возможностями базового графа.
# create dummy data
> set.seed(23)
> x <- rnorm(200, 23, 2.3)
> g <- factor(round(runif(200, 1, 4)))
Используя базовые графики (package:graphics
):
par(mfrow = c(1, 4))
tapply(x, g, hist)
ggplot2 way:
qplot(x, facets = . ~ g)
Попробуйте сделать это с graphics
в одной строке кода (точки с запятой и пользовательские функции считаются обманом!):
qplot(x, log(x), facets = . ~ g)
Будем надеяться, что я не скучал до смерти, но помог вам!
С уважением,
aL3xa