geom_point как назначить значение из двух разных наборов данных с помощью geom_text - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь построить точку из двух разных наборов данных на одном графике.Я хочу добавить «значение» точек с помощью 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])


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

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

1 Ответ

0 голосов
/ 04 февраля 2019

Поскольку вы используете 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)

enter image description here

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