rm(list = ls())
################# ##############input data 
dir_path <- "C:\\Users\\liyix\\OneDrive\\Desktop\\"
dir_path_name <- dir(dir_path,pattern = ".*csv",full.names = T)
dir_path_name
## [1] "C:\\Users\\liyix\\OneDrive\\Desktop\\data.csv"
data_1 <- read.csv(grep("data",dir_path_name,value = T),header = T,stringsAsFactors = F)
data_1
##   number name
## 1   8265    A
## 2   3127    B
## 3   3127    C
## 4   8671    D
## 5   4448    E
data_4<- data_1
#############################################################
library(tidyverse)
## -- Attaching packages ------------------------------------------------------------------ tidyverse 1.3.0 --
## √ ggplot2 3.3.2     √ purrr   0.3.4
## √ tibble  3.0.3     √ dplyr   1.0.1
## √ tidyr   1.1.2     √ stringr 1.4.0
## √ readr   1.3.1     √ forcats 0.5.0
## -- Conflicts --------------------------------------------------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library(igraph)
## 
## Attaching package: 'igraph'
## The following objects are masked from 'package:dplyr':
## 
##     as_data_frame, groups, union
## The following objects are masked from 'package:purrr':
## 
##     compose, simplify
## The following object is masked from 'package:tidyr':
## 
##     crossing
## The following object is masked from 'package:tibble':
## 
##     as_data_frame
## The following objects are masked from 'package:stats':
## 
##     decompose, spectrum
## The following object is masked from 'package:base':
## 
##     union
#myAng <- seq(-20, -300, length.out = 5)
g <- ggplot(data_4, aes(x=name, y=number, fill=name))
g1 <- g + geom_bar(stat = "identity", position = "stack",
                   width = 0.9) +
  #geom_text(aes(label=number), position=position_dodge(width=0.1), vjust=  0.25, angle = 0)+
  #geom_text(aes(y = number+500,label = number),angle = myAng,family = "sans",size=3) +
  coord_polar(start =1.3) +
  scale_fill_manual(values=categorical_pal(5))
g1

bk_df <- data.frame(category = factor(rep(unique(data_4$name), 1)), 
                    value_per = c(rep(0, 5), rep(9000, 5)))
p1 <- g1 + geom_col(data = bk_df,aes(x = category, y = value_per), width = 1, fill = "gray50",alpha = 0.1)+
  scale_y_continuous(name="", limits=c(0, 9000),breaks = seq(0,9000,9000))+
  labs(x = NULL, y = NULL) + 
  geom_hline(yintercept = 3000, colour = "white", size = 0.3,linetype = "solid")+
  geom_hline(yintercept = 6000, colour = "white", size = 0.3,linetype = "solid")+
  geom_hline(yintercept = 9000, colour = "white", size = 0.3,linetype = "solid")+
  theme(legend.position = c(0.5,0.05), legend.direction = "horizontal",
        legend.text = element_text(family = "sans",size=13), 
        legend.title = element_blank(),
        axis.ticks = element_blank(),
        axis.text.x = element_blank(),
        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))
p1

p3 <- p1 +  annotate("text", x = data_4$name[2], y = seq(3000,9000,3000),
                     label = c("3000","6000","9000"), 
                     size = 5,color = "black",family = "sans",angle = 0,
                     hjust=0.2,vjust=.3)
p3

library(grid)
gt <- ggplot_gtable(ggplot_build(p3))
gt$layout$clip[gt$layout$name=="panel"] <- "off"
grid.draw(gt)

ggsave(filename = paste0(Sys.Date(),"-pie_3.tif"), plot = gt, 
       device = "tiff", path = dir_path,
       scale = 1, width = 18.5, height = 18, units = "cm",
       dpi = 300, limitsize = TRUE, compression = "lzw")