1 Bỏ qua các giá trị NA cho huyền thoại trong ggplot

câu hỏi được tạo ra tại Wed, May 8, 2019 12:00 AM

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")

Tôi đã tạo một số phân tán với

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),"%"))

Trước geom_scatterpie_legend mọi thứ đều chạy hoàn hảo, nhưng sau đó, nó không chạy và tôi nghĩ là do các giá trị NA mà tôi có. Làm thế nào tôi có thể thêm chính xác các huyền thoại? Tôi đã thử TAI<-na.omit (TAI) Nhưng điều đó làm cho âm mưu của tôi chỉ đi từ tháng 5. Và tôi muốn hiển thị tất cả các tháng.

    
0
1 Câu trả lời                              1                         

Mã của bạn đang treo đối với tôi khi tôi cố thực thi nó. Tôi đã xóa một phần của lệnh gọi geom_scatterpie_legend tham chiếu TAI ra một danh sách mới:

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

Sau đó, tôi đã cập nhật lệnh gọi ggplot của bạn để sử dụng danh sách mới này làm đối số bán kính. Bạn có thể điều chỉnh danh sách nhãn ở trên để chơi với các kích thước bán kính khác nhau.

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),"%"))

Bây giờ nó đang thực thi cho tôi.

nguồn đặt đây