Как сделать один график из двух фреймов данных с помощью ggplot2 - PullRequest
0 голосов
/ 28 апреля 2019

У меня есть 2 набора данных, называемых A и B. Я хочу сравнить распределение одной общей переменной, называемой k, отображаемой в обоих наборах данных, но разной длины (A содержит 2000 значений k, в то время как B имеет 1000,оба имеют некоторые н / д).Поэтому я хотел бы построить распределение A $ k и B $ k на том же графике.

Я пытался:

g1 <- ggplot(A, aes(x=A$k)) + geom_density()
g2 <- ggplot(B, aes(x=B$k)) + geom_density()
g <- g1 + g2

Но затем появляется ошибка:

Don't know how to add o to a plot.

Как мне преодолеть эту проблему?

Ответы [ 2 ]

0 голосов
/ 29 апреля 2019

Поскольку у нас нет никаких данных, трудно предоставить конкретное решение, соответствующее вашему сценарию.Но ниже приведен общий принцип того, что, я думаю, вы пытаетесь сделать.

Хитрость заключается в том, чтобы собрать ваши данные вместе и получить еще один столбец, который идентифицирует группу A и группу B. Затем он используется в aes()аргумент в ggplot.Помните, что объединение ваших фреймов данных может быть не таким простым, как то, что я сделал, поскольку у вас могут быть дополнительные столбцы и т. Д.

# generating some pseudo data from a poisson distribution
A <- data.frame(k = rpois(2000, 4))
B <- data.frame(k = rpois(1000, 7))

# Create identifier
A$id <- "A"
B$id <- "B"

A_B <- rbind(A, B)

g <- ggplot(data = A_B, aes(x = k, 
                            group = id, colour = id, fill = id)) + # fill/colour aes is not required
  geom_density(alpha = 0.6) # alpha for some special effects

g
0 голосов
/ 28 апреля 2019

Я не могу вам точно сказать, что делать, не зная, как на самом деле выглядят наборы данных. Но объединение наборов данных в один и затем использование ggplot() путем указания group или 'color' будет одним из способов сравнения.

Другой способ - использовать grid.arrange() из gridExtra пакета.

gridExtra::grid.arrange(g1, g2)

Это действительно простая и довольно удобная функция. Если вы хотите узнать больше о пакете gridExtra, посетите этот официальный документ .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...