#####ggplot/GGally - Parallel Coordinates - y-axis labels
rm(list = ls())
library(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\\"
dir_path_name <- list.files(pattern = "data_1.*xlsx",dir_path,full.names = T, recursive = F)
#dir_path_name
library(openxlsx)
getSheetNames(grep("data_1.xlsx",dir_path_name, value = T))
## [1] "Sheet1" "Sheet2"
data_1 <- read.xlsx(grep("data_1.xlsx",dir_path_name, value = T), sheet = 1,startRow = 1)
data_1
##      Input Molecular_Fingerprints Machine_Learning
## 1   Active               ToxPrint               NB
## 2 Inactive                  ECFP4             NNET
## 3     <NA>                   <NA>              SVM
## 4     <NA>                   <NA>               RF
data_1$num <- 1:nrow(data_1)
data_2 <- gather(data_1, key = key , value = value, -num)
data_2 <- na.omit(data_2)
data_list <- list()
for (i in 1:length(unique(data_2$key))) {
    data_3 <- data_2[data_2$key == unique(data_2$key)[i], ]
    data_3$label <- sort(as.numeric(scale(1:nrow(data_3),scale = F)),decreasing = T)
    data_list[[i]] <- data_3
    print(dim(data_3))
 }
## [1] 2 4
## [1] 2 4
## [1] 4 4
data_4 <- do.call("rbind", data_list)
data_4$num <- NULL
#head(data_4,3)
#####################################################
data_0 <- data_1
data_0$num <- NULL
data_5 <- expand.grid(data_0)
data_5[] <- lapply(data_5, as.character)
#View(data_2)
#dim(data_5) #[1] 15625     6
#head(data_5)
data_5 <-na.omit(data_5)
#dim(data_5) #[1] 1920    6
data_5$group <- 1:nrow(data_5)
#head(data_5)
#str(data_5)
data_6 <- gather(data_5, key = key , value = value, -group)
#View(data_6)
#View(data_5)
#install.packages("GGally")
#create a  sample dataset
#head(data_6)
#dim(data_6) #[1] 11520     3
data_7 <- merge(data_6, data_4, by = c("key", "value"))
#dim(data_7) #[1] 11520     4
#head(data_7)
#str(data_7$label)
data_7$label <- as.numeric(data_7$label)
#unique(data_7$key)
data_7$key <- gsub("_", " ", data_7$key)
data_7$key <- gsub("\\.", " ", data_7$key)
data_7$key <- factor(data_7$key, levels = unique(data_7$key)[c(1,3,2)])
#head(data_7)
#######################################################plot
#head(data_7)
library(RColorBrewer)
p1 <- ggplot(data_7, aes(key, label, group=group, colour=key, fill=key)) +
  geom_line(size=0.6) +
  geom_point(size = 5, shape=21, alpha = 0.5) +
  geom_text(aes(label = value), color = "black")+ 
  scale_colour_manual(name = "Country", 
                      values = brewer.pal(n = 8, name = "Pastel1")) #+
   #scale_fill_manual(values = c("green3", "orange", "blue", "red", "grey","yellow"))

p1 + theme(legend.position = "",
            panel.background = element_blank(),
            panel.border = element_blank(),
            plot.title = element_blank(),
            panel.grid = element_blank(),
            legend.title = element_blank(),
            legend.justification = c(0, 1),
            legend.key = element_rect(colour = NA, fill = NA),
            legend.text = element_text(size= 10, color = "black",family = "sans"),
            legend.background = element_blank(),
            axis.text.x   = element_text(size= 12, color = "black",family = "sans",hjust = 0.5),
            axis.text.y   = element_blank(),
            axis.title  = element_blank(),
            axis.ticks.length.x = unit(3, "pt"),
            axis.ticks.length.y = unit(0, "pt"),
            axis.line = element_blank()) 

ggsave(filename = paste0(Sys.Date(),"network_1.tif"), 
       plot = last_plot(), device = "tiff", path = dir_path,
       width = 25, height = 10, units = "cm",
       dpi = 300, limitsize = TRUE)
#https://rpubs.com/TX-YXL/693233