Пропуск значений NA для легенды в ggplot - PullRequest
0 голосов
/ 08 мая 2019

TAI

structure(list(year = c("2018", "2018", "2018", "2018", "2018", 
"2018", "2018", "2018", "2018", "2018", "2018", "2018"), month = c(1, 
2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12), Avdischarge = c(772.3, 370.3375, 
272.85, 195.5875, 100.575, 104.0125, 44.7125, 31.725, 29.6875, 
27.025, 34.30625, 250.825), IndustrialCompound = c(NA, NA, NA, 
NA, 0, 0, 0, 0, 0, 0, 0, 0), Pharmaceutical = c(NA, NA, NA, NA, 
0, 0, 0, 0, 0, 0, 0, 0), Pesticide = c(NA, NA, NA, NA, 1, 1, 
1, 1, 1, 1, 1, 1), TotalOvershootings = c(0, 0, 0, 0, 0.05, 0.1, 
0.1, 0.1, 0.1, 0.1, 0.1, 0.1)), row.names = 37:48, class = "data.frame")

Я сделал несколько скаттерпиев с

piepertai<- ggplot(TAI, aes(x=month)) +
  geom_line(aes(y= as.factor(round(Avdischarge,1)), group=1, color="Discharge"), 
            size=1.5, 
            alpha=0.8) + 
  scale_x_continuous(breaks=TAI$month)+
  scale_color_manual(name= "", values=c("Discharge" = "navy"))+
  geom_scatterpie(aes(x=month, y=2, group=type, r = TotalOvershootings*5), 
                  cols= c("IndustrialCompound", "Pharmaceutical", "Pesticide"),
                  alpha= 0.7,
                  color=NA,
                  data= TAI)+
  labs(y="Average discharge (m3/s)", x= "Month", 
       title= "Discharge and Compounds percentage of exceedance per month (2018)",
       subtitle = "Tailfer")+
  theme(axis.title.x = element_text(size=13),
        axis.text.x  = element_text(size=13),
        axis.title.y = element_text(size=13),
        axis.text.y = element_text(size = 13),
        plot.title = element_text(size = 15), 
        plot.subtitle = element_text(size = 14, face = "italic"),
        legend.text=element_text(size=13))+
  geom_scatterpie_legend(TAI$TotalOvershootings*5, x= 9, y= 10, n= 5, 
                         labeller=function(x) paste0(round_any(100*x/1.5,5),"%"))

До geom_scatterpie_legend все работает отлично, но после этого он не запускается, и я думаю, потому чтозначений АН, которые у меня есть.Как правильно добавить легенду?Я попробовал TAI<-na.omit (TAI) Но это заставляет мой сюжет выходить только с месяца 5. И я хочу показать все месяцы.

1 Ответ

0 голосов
/ 08 мая 2019

Ваш код висит у меня, когда я пытаюсь его выполнить.Я удалил часть вызова geom_scatterpie_legend, которая ссылается на TAI, в новый список:

labels <- (unique(TAI$TotalOvershootings)*10)/1.5

Затем я обновил ваш вызов ggplot, чтобы использовать этот новый список в качестве аргумента радиуса.Вы можете настроить список меток выше, чтобы играть с разными размерами радиуса.

ggplot(TAI, aes(x=month)) +
  geom_line(aes(y= as.factor(round(Avdischarge,1)), group=1, color="Discharge"), 
            size=1.5, 
            alpha=0.8) + 
  scale_x_continuous(breaks=TAI$month)+
  scale_color_manual(name= "", values=c("Discharge" = "navy"))+
  geom_scatterpie(aes(x=month, y=2, group=type, r = TotalOvershootings*5), 
                  cols= c("IndustrialCompound", "Pharmaceutical", "Pesticide"),
                  alpha= 0.7,
                  color=NA,
                  data= TAI)+
  labs(y="Average discharge (m3/s)", x= "Month", 
       title= "Discharge and Compounds percentage of exceedance per month (2018)",
       subtitle = "Tailfer")+
  theme(axis.title.x = element_text(size=13),
        axis.text.x  = element_text(size=13),
        axis.title.y = element_text(size=13),
        axis.text.y = element_text(size = 13),
        plot.title = element_text(size = 15), 
        plot.subtitle = element_text(size = 14, face = "italic"),
        legend.text=element_text(size=13)) +
  geom_scatterpie_legend(radius = labels, x= 9, y= 10, n=3,
                         labeller=function(x) paste0(round_any(100*x/1.5,5),"%"))

Это выполняется для меня сейчас.

enter image description here

Являетесь ли вы ожидаемым результатом такого рода?

...