I am trying to make customize Sankey images in R, I used this data to practice.
df = structure(list(Sources = c("Urban", "Tourism", "Tourism", "Urban",
"Urban", "Urban", "Tourism", "Tourism", "Tourism", "Tourism",
"Urban", "Urban", "Urban", "Urban", "Urban", "Urban", "Urban",
"Urban", "Urban", "Urban", "Urban", "Urban", "Urban", "Tourism",
"Tourism", "Urban", "Urban", "Urban", "Tourism", "Tourism", "Tourism",
"Tourism", "Urban", "Urban", "Urban", "Urban", "Urban", "Urban",
"Urban", "Urban", "Urban", "Urban", "Urban", "Urban", "Shipping Lane",
"Tourism", "Tourism", "Tourism", "Tourism", "Tourism", "Urban",
"Aquaculture", "Urban", "Aquaculture", "Urban", "Urban", "Urban",
"Tourism", "Tourism", "Shipping Lane", "Urban", "Aquaculture",
"Aquaculture", "Tourism", "Shipping Lane", "Urban", "Urban",
"Urban", "Urban", "Urban", "Urban", "Urban", "Urban", "Urban",
"Wastewater discharge", "Urban", "Urban", "Urban", "Urban", "Urban",
"Tourism", "Tourism", "Ship repair", "Tourism", "Urban", "Aquaculture",
"Urban", "Urban", "Urban", "Urban", "Tourism", "Shipping Lane",
"Tourism", "Tourism", "Aquaculture", "Aquaculture", "Urban",
"Shipping Lane", "Tourism", "Wastewater discharge", "Shipping Lane",
"Tourism", "Aquaculture", "Tourism", "Tourism", "Ship repair",
"Tourism", "Ship repair", "Tourism", "Tourism", "Tourism", "Aquaculture",
"Aquaculture"), Region = c("Xiamen Bay", "Xiamen Bay", "Xiamen Bay",
"Xiamen Bay", "Xiamen Bay", "Xiamen Bay", "Xiamen Bay", "Xiamen Bay",
"Xiamen Bay", "Xiamen Bay", "Xiamen Bay", "Xiamen Bay", "Xiamen Bay",
"Jiulong River", "Jiulong River", "Jiulong River", "Jiulong River",
"Jiulong River", "Jiulong River", "Jiulong River", "Jiulong River",
"Jiulong River", "Xiamen Bay", "Xiamen Bay", "Xiamen Bay", "Xiamen Bay",
"Xiamen Bay", "Xiamen Bay", "Xiamen Bay", "Xiamen Bay", "Xiamen Bay",
"Xiamen Bay", "Xiamen Bay", "Xiamen Bay", "Jiulong River", "Jiulong River",
"Jiulong River", "Jiulong River", "Jiulong River", "Jiulong River",
"Jiulong River", "Jiulong River", "Jiulong River", "Jiulong River",
"Xiamen Bay", "Xiamen Bay", "Xiamen Bay", "Xiamen Bay", "Xiamen Bay",
"Xiamen Bay", "Xiamen Bay", "Xiamen Bay", "Xiamen Bay", "Xiamen Bay",
"Xiamen Bay", "Xiamen Bay", "Jiulong River", "Jiulong River",
"Jiulong River", "Jiulong River", "Jiulong River", "Jiulong River",
"Jiulong River", "Jiulong River", "Jiulong River", "Jiulong River",
"Jiulong River", "Xiamen Bay", "Xiamen Bay", "Xiamen Bay", "Xiamen Bay",
"Xiamen Bay", "Xiamen Bay", "Xiamen Bay", "Xiamen Bay", "Xiamen Bay",
"Xiamen Bay", "Xiamen Bay", "Xiamen Bay", "Jiulong River", "Jiulong River",
"Jiulong River", "Jiulong River", "Jiulong River", "Jiulong River",
"Jiulong River", "Jiulong River", "Jiulong River", "Jiulong River",
"Jiulong River", "Xiamen Bay", "Xiamen Bay", "Xiamen Bay", "Xiamen Bay",
"Xiamen Bay", "Xiamen Bay", "Xiamen Bay", "Xiamen Bay", "Xiamen Bay",
"Xiamen Bay", "Xiamen Bay", "Xiamen Bay", "Jiulong River", "Jiulong River",
"Jiulong River", "Jiulong River", "Jiulong River", "Jiulong River",
"Jiulong River", "Jiulong River", "Jiulong River", "Jiulong River",
"Jiulong River"), Season = c("Winter-2021", "Winter-2021", "Winter-2021",
"Winter-2021", "Winter-2021", "Winter-2021", "Winter-2021", "Winter-2021",
"Winter-2021", "Winter-2021", "Winter-2021", "Winter-2021", "Winter-2021",
"Winter-2021", "Winter-2021", "Winter-2021", "Winter-2021", "Winter-2021",
"Winter-2021", "Winter-2021", "Winter-2021", "Winter-2021", "Spring-2021",
"Spring-2021", "Spring-2021", "Spring-2021", "Spring-2021", "Spring-2021",
"Spring-2021", "Spring-2021", "Spring-2021", "Spring-2021", "Spring-2021",
"Spring-2021", "Spring-2021", "Spring-2021", "Spring-2021", "Spring-2021",
"Spring-2021", "Spring-2021", "Spring-2021", "Spring-2021", "Spring-2021",
"Spring-2021", "Spring-2021", "Spring-2021", "Spring-2021", "Spring-2021",
"Spring-2021", "Spring-2021", "Spring-2021", "Spring-2021", "Spring-2021",
"Spring-2021", "Spring-2021", "Spring-2021", "Spring-2021", "Spring-2021",
"Spring-2021", "Spring-2021", "Spring-2021", "Spring-2021", "Spring-2021",
"Spring-2021", "Spring-2021", "Spring-2021", "Spring-2021", "Summer-2021",
"Summer-2021", "Summer-2021", "Summer-2021", "Summer-2021", "Summer-2021",
"Summer-2021", "Summer-2021", "Summer-2021", "Summer-2021", "Summer-2021",
"Summer-2021", "Summer-2021", "Summer-2021", "Summer-2021", "Summer-2021",
"Summer-2021", "Summer-2021", "Summer-2021", "Summer-2021", "Summer-2021",
"Summer-2021", "Summer-2021", "Autumn-2021", "Autumn-2021", "Autumn-2021",
"Autumn-2021", "Autumn-2021", "Autumn-2021", "Autumn-2021", "Autumn-2021",
"Autumn-2021", "Autumn-2021", "Autumn-2021", "Autumn-2021", "Autumn-2021",
"Autumn-2021", "Autumn-2021", "Autumn-2021", "Autumn-2021", "Autumn-2021",
"Autumn-2021", "Autumn-2021", "Autumn-2021", "Autumn-2021", "Autumn-2021"
)), class = "data.frame", row.names = c(NA, -113L))
But I used the following code to generate Sankey image
library(dplyr)
library(ggplot2)
library(ggsankey)
df1 <- df %>%
make_long(Region, Season, Sources)
pl <- ggplot(df1, aes(x = x,
next_x = next_x,
node = node,
next_node = next_node,
fill = factor(node))) +
geom_sankey() +
theme_sankey(base_size = 16)
pl
pl + geom_sankey(flow.alpha = 0.5,
color = "gray40",
show.legend = T)
pl+ theme_bw()+
theme(legend.position = "none",
axis.title = element_blank(),
axis.text.y = element_blank(),
axis.ticks = element_blank(),
panel.grid = element_blank())
pl +scale_fill_manual(values = c('Urban' = "Pink",
'Tourism' = "Gray",
'Wastewater discharge' = "blue",
'Ship repair' = "violet",
'Aquaculture' = "Cyan",
'Shipping Lane' = "yellow",
'Winter-2021' = "red",
'Spring-2021' = "green",
'Summer-2021' = "orange",
'Autumn-2021' = "purple",
'Xiamen Bay' = "Blue",
'Jiulong River'= "Darkblue"))
but the picture showing like this
now I don't want legend like this, I want to add label and percentage inside the image. But I don't know how to do that. instead of this legend comes on side I want my all information will come inside of the image.