在R图中用百分比标记
嗨,我做了这个函数,它获取一个表格并为条形图准备标签在R图中用百分比标记,r,R,嗨,我做了这个函数,它获取一个表格并为条形图准备标签 prepare_labels <- function(ft){ labs <- ft labs <- paste(labs, "\n", sep="") labs <- paste(labs, round(prop.table(ft)*100,2), sep="") labs <- paste(labs, "%", sep="") return(labs) } prepare_labels由
prepare_labels <- function(ft){
labs <- ft
labs <- paste(labs, "\n", sep="")
labs <- paste(labs, round(prop.table(ft)*100,2), sep="")
labs <- paste(labs, "%", sep="")
return(labs)
}
prepare_labels由于sep参数对于所有粘贴调用都是相同的,因此您可以合并为一个:
labs <- paste(ft,"\n",round(prop.table(ft)*100,2),"%",sep="")
labs使用sprintf
:
sprintf("%d\n%2.2f%%", ft, prop.table(ft)*100)
或者,使用ggplot2
:
ggplot(mtcars, aes(factor(cyl))) + geom_bar() + stat_bin(aes(label = paste(prop.table(..count..) * 100, "%", sep = "")), vjust = -0.2, geom = "text", position = "identity")
然后得到这样的结果:
这真是太好了!您知道如何使用ggplot对列重新排序吗。我有5个级别,但它们的显示顺序错误。“不知道”、“可能有趣”、“不有趣”、“非常有趣”、“非常不有趣”我想按顺序排列不知道、非常不有趣、不有趣、可能有趣、非常有趣当然你可以:ggplot(mtcars,aes(factor(cyl))+geom\u bar()+scale\u x\u离散(limits=c(“6”、“8”、“4”)
。这是一份官方文件:Thabk you aL3xa。。。很抱歉再次问你这个问题。。。行stat_bin(aes(label=paste(round((prop.table(…count….)*100),2),“%”,sep=“”)恢复了之前的顺序。我想这是因为prop.table(…count….)有不同的顺序。知道如何在prop.table中定义顺序吗检查这一行:ggplot(mtcars,aes(factor(cyl))+geom_bar()+stat_bin(aes(标签=粘贴(道具表格(…计数…)*100,“%,sep=”),vjust=-0.2,geom=“text”,position=“identity”)
和这一个ggplot(mtcars,aes(系数(cyl))+geom_bar()+比例离散(限值=c(“6”,“8”,“4”)+stat_bin(aes(标签=粘贴(道具表格(…计数…)*100,“%,sep=”),just=-0.2,geom=“文本”,位置=“身份”)
ggplot(mtcars, aes(factor(cyl))) + geom_bar() + stat_bin(aes(label = paste(prop.table(..count..) * 100, "%", sep = "")), vjust = -0.2, geom = "text", position = "identity")