R 获取用于标记ggplot直方图的值和位置

R 获取用于标记ggplot直方图的值和位置,r,ggplot2,R,Ggplot2,下面的代码运行良好,它正确地标记了条形图,但是,如果我尝试对直方图进行geom_text,我失败了,因为geom_text需要y-分量,而直方图的y分量不是原始数据的一部分 标记“普通”条形图(geom_bar(stat=“identity”)工作正常: ggplot(csub, aes(x = Year, y = Anomaly10y, fill = pos)) + geom_bar(stat = "identity", position = "

下面的代码运行良好,它正确地标记了条形图,但是,如果我尝试对直方图进行
geom_text
,我失败了,因为
geom_text
需要
y
-分量,而直方图的
y
分量不是原始数据的一部分

标记“普通”条形图(
geom_bar(stat=“identity”
)工作正常:

 ggplot(csub, aes(x = Year, y = Anomaly10y, fill = pos)) +
        geom_bar(stat = "identity", position = "identity") +
        geom_text(aes(label = Anomaly10y,vjust=1.5))  
我的问题:如何为
几何图形文本
获取正确的
y
标签
(由
指示?
),将标签放在直方图条的顶部

ggplot(csub,aes(x = Anomaly10y)) + 
        geom_histogram() 
        geom_text(aes(label = ?, vjust = 1.5))
geom\u text
需要
x
y
标签
。但是,
y
标签
不在原始数据中,而是由
geom\u直方图
函数生成。我如何提取必要的数据以在直方图上定位标签?

geom\u直方图()
只是
stat\u bin
的一个奇特的包装器,因此您可以使用自己喜欢的条和文本来完成所有这些。下面是一个示例

#sample data
set.seed(15)
csub<-data.frame(Anomaly10y = rpois(50,5))
得到

geom\u histogram()
只是
stat\u bin
的一个花式包装,因此您可以使用自己喜欢的条和文本来完成所有这些。下面是一个示例

#sample data
set.seed(15)
csub<-data.frame(Anomaly10y = rpois(50,5))
得到


好吧,让它在美学上更具吸引力以下是解决方案:

set.seed(15)
csub <- data.frame(Anomaly10y = rpois(50, 5))
结果图将是


好吧,让它在美学上更具吸引力以下是解决方案:

set.seed(15)
csub <- data.frame(Anomaly10y = rpois(50, 5))
结果图将是


作为旁注,添加
+限制(x=c(0,12))
将显示10的标签。@tonytonov我本应该这样做的。我继续更新了示例,以扩展范围,因此没有标签被切断。谢谢,它的工作,但是,它抛出了一个警告:“ymax未定义:改为使用y调整位置。”对于因子直方图,需要使用
+stat\u count(binwidth=1,geom=“text”,aes(label=…count..),vjust=0.25)
如果有人对这种情况有相同的问题,只需添加
+限制(x=c(0,12))
将显示10的标签。@tonytonov我本应该这样做的。我继续更新了示例,以扩展范围,使标签不会被切断。感谢它的工作,但是,它发出了一个警告:“ymax未定义:使用y调整位置。”对于因子直方图,需要使用
+统计计数(binwidth=1,geom=“text”,aes(label=…count..),vjust=0.25)
如果有人对这种情况有相同的问题…作为旁注,添加
+限制(x=c(0,12))
将显示10的标签。@tonytonov我本应该这样做的。我继续更新了示例,以扩展范围,使标签不会被切断。感谢它的工作,但是,它发出了一个警告:“ymax未定义:使用y调整位置。”对于因子直方图,需要使用
+统计计数(binwidth=1,geom=“text”,aes(label=…count..),vjust=0.25)
如果有人对这种情况有相同的问题。。。