rm(list = ls())
library(geomtextpath)
## 载入需要的程辑包:ggplot2
library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v tibble  3.1.6     v dplyr   1.0.8
## v tidyr   1.2.0     v stringr 1.4.0
## v readr   2.1.2     v forcats 0.5.1
## v purrr   0.3.4
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
###############################input data 
dir_path <- "C:\\Users\\liyix\\OneDrive\\Desktop\\radar\\"
dir_path_name <- dir(dir_path,pattern = "data_for_radar.csv",full.names = T)
#dir_path_name
data_1 <- read.csv(dir_path_name[1],header = T,stringsAsFactors = F)
#head(data_1)
#View(data_1)
data_2 <- data_1[21:28,]
#colnames(data_2)
data_2 <- data_2[,-1]
library(tidyverse)
data_2 <- gather(data_2, key = key, value = value, -1,-ncol(data_2))
#unique(data_2$X14)
data_2 <- data_2[which(data_2$X14 == "Protein #"),]
#View(data_2)
data_2$SOURCE_1 <- data.frame(t(data.frame(strsplit(data_2$SOURCE,"_"))))[,2]
data_2 <- data_2[,c(3:5)]
colnames(data_2) <-c("category","value","source")
#table(data_2$category)
#head(data_2)
#data_2$value
data_2$category <- gsub("X","ABCDEF",data_2$category)
#range01(s)
#View(data_4)
data_2$category <- factor(data_2$category,levels = unique(data_2$category))
data_2
##     category value source
## 1  ABCDEF500  4180 Plate1
## 2  ABCDEF500  3532 Plate2
## 3  ABCDEF500  3764 Plate3
## 4  ABCDEF500  3545 Plate4
## 9   ABCDEF1K  4534 Plate1
## 10  ABCDEF1K  3833 Plate2
## 11  ABCDEF1K  4095 Plate3
## 12  ABCDEF1K  3959 Plate4
## 17  ABCDEF3K  4747 Plate1
## 18  ABCDEF3K  4133 Plate2
## 19  ABCDEF3K  4391 Plate3
## 20  ABCDEF3K  4426 Plate4
## 25  ABCDEF5K  4756 Plate1
## 26  ABCDEF5K  4169 Plate2
## 27  ABCDEF5K  4453 Plate3
## 28  ABCDEF5K  4482 Plate4
## 33  ABCDEF7K  4744 Plate1
## 34  ABCDEF7K  4181 Plate2
## 35  ABCDEF7K  4426 Plate3
## 36  ABCDEF7K  4497 Plate4
## 41 ABCDEF10K  4718 Plate1
## 42 ABCDEF10K  4159 Plate2
## 43 ABCDEF10K  4426 Plate3
## 44 ABCDEF10K  4491 Plate4
####add code___3
bk_df <- data.frame(category = factor(rep(unique(data_2$category), 2)), 
                    value_per = c(rep(0, 6), rep(5000, 6)))
p1 <- ggplot(data_2, aes(x = category, y = value, fill = source)) +
  geom_col(data = bk_df,aes(x = category, y = value_per), width = 1, fill = "grey10",alpha = 0.1)+
  geom_polygon(size = 0.1, alpha= 0.2,aes(group = source, color = source)) + ggtitle("") +
  scale_y_continuous(name="", limits=c(0, 5100),breaks = seq(0,5100,5000)) +
  geom_hline(yintercept = 1000, colour = "white", size = 0.3,linetype = "solid")+
  geom_hline(yintercept = 3000, colour = "white", size = 0.3,linetype = "solid")+
  geom_hline(yintercept = 5000, colour = "white", size = 0.3,linetype = "solid")+
  geom_vline(xintercept = seq(0, 5, by = 1), colour = "white", size = 0.3,linetype = "solid" ) +
  #geom_text(x=2,y=0, vjust=-1,label = "0",colour = "red")+
  scale_color_manual(values = c("#FBB4AE", "#B3CDE3", "#CCEBC5", "#DECBE4")) +
  scale_fill_manual(values = c("Red", "Blue","purple","green")) 
p1

#############################plot_2
p2 <- p1 + labs(x = NULL, y = NULL) + 
  theme(legend.position = c(0.5,0.03), legend.direction = "horizontal",
        legend.text = element_text(family = "sans",size=10,colour = "black"), 
        legend.title = element_blank(),
        axis.ticks = element_blank(),
        axis.text.x = element_text(family = "sans",size=10,colour = "black"),
        axis.text.y = element_blank(),
        panel.grid.major.y = element_line(colour = "white", size = 0.1, linetype = "solid"),
        panel.grid.major.x = element_line(colour = "white", size = 0.1, linetype = "solid"),
        panel.grid.minor = element_line(colour = "white", size = 0.1, linetype = "solid"),
        panel.background = element_rect(fill = NA))
p2

##########################annotate__1
p2 +  annotate("text", x =data_2$category, y = data_2$value,
               label = formatC(data_2$value, format = "e", digits = 2), 
               size = 2.5,color = "black",family = "sans",angle = 0)

############annotate__2
p3 <- p2 +  annotate("text", x = data_2$category[1:3], y = c(1000,3000,5000),
                     label = c("1000","3000","5000"), 
                     size = 3,color = "darkred",family = "sans",angle = 0,
                     hjust=0.2,vjust=.3)
p3 + coord_polar(clip = "on") 

p3 + coord_curvedpolar()

#output
ggsave(filename = paste0(Sys.Date(),"-radar_plot.tif"), plot = last_plot(), 
       device = "tiff", path = dir_path,
       scale = 1, width = 20, height =20, units = "cm",dpi = 300, limitsize = TRUE, compression = "lzw")