Как добавить легенду для каждого типа линии с помощью ggplot? - PullRequest
0 голосов
/ 30 октября 2019

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

Ниже вы найдете представление моего кода.

x<-c(1:10)
y<-c(runif(10,min=50,max=100))
z<-c(runif(10,min=50,max=100))
group=c("A","A","B","C","B","C","C","B","A","B")
session=c(rep("S1",5),rep("S2",5))

test<-data.frame(x=x, Serie1=y,Serie2=z,group=group,session=session)

library(ggplot2)
ggplot(test)+
  geom_line(aes(x=x,y=Serie1,group=group,col=group,pch=group),linetype=1)+
  geom_line(aes(x=x,y=Serie2,group=group,col=group),linetype=2)+
  labs(x="x axis",y="yaxis")+
  facet_grid(.~session)
#> Warning: Ignoring unknown aesthetics: shape

У кого-нибудь есть идеи о том, как можно добавить легенду для типа линии, чтобы указать, что serie1 представлен сплошной линией, а serie2 - пунктирной линией? Кроме того, кто-нибудь знает, почему при запуске предыдущего кода появляется следующее предупреждение: «Предупреждение: игнорирование неизвестной эстетики: форма»? Спасибо всем за помощь!

1 Ответ

2 голосов
/ 30 октября 2019

Если вы хотите легенду для чего-то, она должна быть внутри aes(). Переместите linetype= в aes(), и вы можете дать названия линий, когда вы так. Также сообщение об ошибке фигуры поступало от pch=, который не является допустимым параметром для линий.

library(ggplot2)
ggplot(test)+
  geom_line(aes(x=x,y=Serie1,group=group,col=group,linetype="series1"))+
  geom_line(aes(x=x,y=Serie2,group=group,col=group,linetype="series2"))+
  labs(x="x axis",y="yaxis")+
  facet_grid(.~session)

enter image description here

...