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