Как нарисовать линии и точки на одном участке в ggplot2? - PullRequest
0 голосов
/ 20 декабря 2018

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

df1 <- data.frame(Rate=rnorm(10, 500, 100), Damage=rnorm(10, 50, 15))
q <- data.frame(R=rnorm(20, 550, 50), V=rnorm(20, 35, 10))

ggplot(df1,aes(x=Rate,y=Damage)) +
#geom_polygon(data=ci,aes(x=x,y=y),fill='gray80') +
geom_point(data=q,aes(x=R,y=V)) +
geom_smooth(aes(col = "GPs"), method="auto",se=FALSE) +
geom_smooth(data=q, mapping=aes(x=R, y=V, col="observed"), 
          method="auto",se=FALSE) +
coord_cartesian(xlim=c(0,1000), ylim=c(0, 100)) +
theme_bw() +
scale_y_continuous(breaks=seq(0, 100, 20),) +
labs(subtitle="PPS post-emergence", 
   x = "Rate (mg/Ha)",
   y = NULL) +
scale_color_manual("My legend", values=c("Predicted (GPs)" = "steelblue", 
                                       "Observed (average)" = "firebrick"))

1 Ответ

0 голосов
/ 20 декабря 2018

Ваше цветовое отображение не имеет смысла.У вас есть цвет сопоставлен с «GP» и «наблюдаемый»Но значения в вашей цветовой шкале не соответствуют этим.Вы можете заставить его работать, используя

ggplot(df1,aes(x=Rate,y=Damage)) +
  geom_point(data=q,aes(x=R,y=V)) +
  geom_smooth(aes(col = "GPs"), method="auto",se=FALSE) +
  geom_smooth(data=q, mapping=aes(x=R, y=V, col="observed"), 
              method="auto",se=FALSE) +
  coord_cartesian(xlim=c(0,1000), ylim=c(0, 100)) +
  theme_bw() +
  scale_y_continuous(breaks=seq(0, 100, 20),) +
  labs(subtitle="PPS post-emergence",
       x = "Rate (mg/Ha)",
       y = NULL) +
  scale_color_manual("My legend", values=c("GPs" = "steelblue",
                                           "observed" = "firebrick"))

enter image description here

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