我试图在barplot内显示频率...我想要他们某处在图中:在酒吧下方,酒吧内,酒吧上方或图例区域中。我记得(我可能是错的),它可以在ggplot2
完成。这可能很简单...至少看起来很简单。代码如下:在ggplot2中显示频率和barplot
p <- ggplot(mtcars)
p + aes(factor(cyl)) + geom_bar()
有没有可能让频率嵌入图中?
我试图在barplot内显示频率...我想要他们某处在图中:在酒吧下方,酒吧内,酒吧上方或图例区域中。我记得(我可能是错的),它可以在ggplot2
完成。这可能很简单...至少看起来很简单。代码如下:在ggplot2中显示频率和barplot
p <- ggplot(mtcars)
p + aes(factor(cyl)) + geom_bar()
有没有可能让频率嵌入图中?
geom_text
是从基地图形text
THA类似物:
p + geom_bar() + stat_bin(aes(label=..count..), vjust=0,
geom="text", position="identity")
如果要调整的标签的y位置,则可以使用y=
审美内stat_bin
:例如,y=..count..+1
将标签放在酒吧上方一个单位。
上面也适用如果你使用geom_text
和stat="bin"
里面。
如果您不限于ggplot2,可以使用来自plotrix软件包的基本图形文件或boxed.labels文本。
难以实现。我相信有更好的方法。
ggplot(mtcars,aes(factor(cyl))) +
geom_bar() +
geom_text(aes(y=sapply(cyl,function(x) 1+table(cyl)[names(table(cyl))==x]),
label=sapply(cyl,function(x) table(cyl)[names(table(cyl))==x])))
这是比较好的做法是创建你的绘制代码数据_outside_。将数据推入审美映射是一个不错的主意。 – hadley 2010-03-31 14:31:15
如果想要添加不同的信息了以下工作:
ggplot(mydata, aes(x=clusterSize, y=occurence)) +
geom_bar() + geom_text(aes(x=clusterSize, y=occurence, label = mydata$otherinfo))
您能否通过提供一个引用'datasets'包(或CRAN仓库中可用的其他包)中可用数据的示例复制此答案?我怀疑barplot是否可以使用指定的“y”变量来绘制“...”... – aL3xa 2010-06-08 01:07:39
对于标签,为什么在计数之前和之后有“..”? – 2015-04-12 17:19:57
'..count..'是包含'stat_bin'自动创建的bin频率的变量的名称。所以在它之前和之后的两个时期是变量名称的一部分 – Aniko 2015-04-14 20:45:17
这个答案给我一个错误'错误:stat_count需要以下缺失的美学:x'。但是,在'p + aes(factor(cyl))+ geom_bar()+ stat_count(aes(label = .. count)'中加入'aes(factor(cyl))'并将'stat_bin'改为'stat_count'。 。),vjust = 0,geom =“text”,position =“identity”)'确实有效。 – steveb 2017-09-14 17:58:34