dt<-data.frame(A=c(26756,1906,106,6),B=c('0','1','2','3'))
dt = dt[order(dt$A, decreasing = TRUE),] ##把数据集根据A列进行排序,从大到小
myLabel = as.vector(dt$B) ##转成因子型,防止图例标签顺序与实际顺序不符
myLabel = paste(myLabel, "(",dt$A,' ', round(dt$A / sum(dt$A) * 100, 2), "%)", sep = "") ##编辑标签内容,2表示保留2位小数
ggplot(dt, aes(x = "", y = A, fill = B)) +
geom_bar(stat = "identity", width = 1) + ## width >= 1 时中心的杂点将消失
coord_polar(theta = "y") + ##极坐标变换
labs(x = "", y = "", title = "") + ## 将标签设为空
theme(axis.ticks = element_blank()) + ## 把左上角多出来的“小胡子”去掉
theme(legend.title = element_blank(), legend.position = "left") + ## 将图例标题设为空,并把图例放在左边
scale_fill_discrete(breaks = dt$B, labels = myLabel) + ## 将原来的图例标签换成现在的myLabel
dt = dt[order(dt$A, decreasing = TRUE),] ##把数据集根据A列进行排序,从大到小
myLabel = as.vector(dt$B) ##转成因子型,防止图例标签顺序与实际顺序不符
myLabel = paste(myLabel, "(",dt$A,' ', round(dt$A / sum(dt$A) * 100, 2), "%)", sep = "") ##编辑标签内容,2表示保留2位小数
ggplot(dt, aes(x = "", y = A, fill = B)) +
geom_bar(stat = "identity", width = 1) + ## width >= 1 时中心的杂点将消失
coord_polar(theta = "y") + ##极坐标变换
labs(x = "", y = "", title = "") + ## 将标签设为空
theme(axis.ticks = element_blank()) + ## 把左上角多出来的“小胡子”去掉
theme(legend.title = element_blank(), legend.position = "left") + ## 将图例标题设为空,并把图例放在左边
scale_fill_discrete(breaks = dt$B, labels = myLabel) + ## 将原来的图例标签换成现在的myLabel
theme(axis.text.x = element_blank()) ## 白色的外框即是原柱状图的X轴,把X轴的刻度文字去掉即可
效果图如下: