geom_point, как присвоить значение из двух разных наборов данных с помощью geom_text

Я пытаюсь построить точку из двух разных наборов данных на одном графике. Я хочу добавить «значение» точек с помощью geom_text, но это не работает.

Я не могу показать вам набор данных, но оба набора данных p1 и p2 имеют 3 столбца, которые являются числовыми.

Я хочу построить функцию столбца 3 для столбца 2 (точки из набора данных 2 в красном, точки из набора данных 1 в синем). и добавьте столбец 1 в качестве метки

ggplot()+geom_point(size=8,col="red",aes(x=p2[,3],y=p2[,2]/sum(p2[,2])))+
   geom_text(label=p2[,1])+ylab("frequence")+
     geom_point(size=8,col="blue",aes(x=p1[,3],y=p1[,2]/sum(p1[,2])))+
    geom_text(label=p1[,1])

Нарисуйте мне точки, которые я хочу, синим и красным соответственно, но без меток.

Я могу распечатать этикетку из 2 наборов данных с помощью

ggplot(p2,aes(x=p2[,3],y=p2[,2]/sum(p2[,2])))+geom_text(label=p2[,1])+ylab("frequence")+ geom_point(size=8,col="red",alpha=0.2)+
geom_point(size=8,col="blue",alpha=0.2,aes(x=p1[,3],y=p1[,2]/sum(p1[,2])))+geom_text(label=p1[,1])


Проблема здесь в том, что обе этикетки печатаются в моей красной точке

Спасибо за ваше время


person akhetos    schedule 04.02.2019    source источник


Ответы (1)


Поскольку вы используете 2 набора данных, вы должны указать в каждом geom function правильные наборы данных с параметром data = .

library(ggplot)

p1 <- data.frame(c1 = rnorm(10), c2 = rnorm(10), c3 = rnorm(10))
p2 <- data.frame(c1 = rnorm(10), c2 = rnorm(10), c3 = rnorm(10))

ggplot() +
  geom_point(aes(x = c3, y = c2 / sum(c2)), col = "red", data = p2) +
  geom_text(aes(x = c3, y = c2 / sum(c2), label = round(c1, 2)), data = p2) +
  geom_point(aes(x = c3, y = c2 / sum(c2)), col = "blue", data = p1) +
  geom_text(aes(x = c3, y = c2 / sum(c2), label = round(c1, 2)), data = p1)

введите здесь описание изображения

person demarsylvain    schedule 04.02.2019