Как избавиться от двойной легенды на лесном участке с помощью GGPLOT2? - PullRequest
1 голос
/ 09 июля 2020

Я использую GGPLOT2 для создания лесного участка, и, поскольку я добавил строку кода, чтобы изменить форму одной из точек на ромб, я получаю двойную легенду (pi c ниже)

Изображение лесного участка

Кто-нибудь знает, как я могу сохранить легенду с цветовой кодировкой, но с ромбовидной формой из черной легенды? И избавьтесь от черной легенды!

p2 = ggplot(data=Forestplot,
           aes(x = Group,y = RiskRatio, ymin = LowerLimit, 
               ymax = UpperLimit, shape = Group ))+
  geom_pointrange(aes(col=Group, shape = Group))+
  scale_shape_manual(values = c(5, 20, 20, 20, 20)) +
  geom_hline(aes(fill=Group),yintercept =0, linetype=2)+
  xlab('Trait')+ ylab("Effect Size (95% Confidence Interval)")+
  geom_errorbar(aes(ymin=LowerLimit, ymax=UpperLimit,col=Group),width=0.5,cex=1)+ 
  facet_wrap(~Condition,strip.position="left",nrow=9,scales = "free_y") +
  theme(plot.title=element_text(size=16,face="bold"),
        axis.text.y=element_blank(),
        axis.ticks.y=element_blank(),
        axis.text.x=element_text(face="bold"),
        axis.title=element_text(size=12,face="bold"),
        strip.text.y = element_text(hjust=0,vjust = 1,angle=180,face="bold"))+
  coord_flip() + guides(col = guide_legend(reverse = TRUE))
p2

Это моя первая публикация, пожалуйста, дайте мне знать, если потребуется дополнительная информация.

1 Ответ

1 голос
/ 09 июля 2020

Вам необходимо применить обратный порядок как к color, так и к shape эстетике. Посмотрите пример ниже:

library(ggplot2)

ggplot(iris) +
  aes(Sepal.Length, Sepal.Width, color = Species, shape = Species) +
  geom_point() + 
  guides(color = guide_legend(reverse = TRUE))

ggplot(iris) +
  aes(Sepal.Length, Sepal.Width, color = Species, shape = Species) +
  geom_point() + 
  guides(color = guide_legend(reverse = TRUE), shape = guide_legend(reverse = TRUE))
...