See below example-
df <- data.frame(
name = c("sindhu", "karthick", "venu"),
marks = c(45, 43, 50)
)
ggplot(df, aes(x="", y=marks, fill=name))+
geom_bar(stat = "identity")+ coord_polar("y", start=0)+
theme(axis.text.x=element_blank())+
geom_text(aes(y = marks/3 + c(0, cumsum(marks)[-length(marks)]), label = paste(marks/100,"%")))