(更新) 我有像这样的ggplot,但随后x轴日期缩放:
g1 <- ggplot(diamonds, aes(clarity, fill=cut)) + geom_bar()
以上两个小节(比如说VS2和IF,但在我的图表中它是一个日期)我想在条形图上面加上一个文本标签,高度为13.000。
我尝试了很多东西,但这是最接近的: 这是我在我的图表中尝试使用Date轴 g1 + geom_text(aes(as.Date(“2014-10-05”),13000),label =“boat”)
但这只会在图表中添加一个,并且只要我尝试扩展它,例如使用
g1 + geom_text(aes(c(as.Date("2014-10-05"),as.Date("2014-10-20")) , 13000), label=c("boat", "train"))
然后我收到错误:
错误:美学必须是长度1或与长度相同 dataProblems:c(as.Date(“2014-10-05”),as.Date(“2014-10-20”))
我还尝试从数据框(oefen)中读取文本和标签,其中我使用了与原始图相同的名称
g1 + geom_text(data=oefen, aes(x=newdat, y=Number, label=oefen$labs, fill=1))
我收到错误
错误:提供给离散比例的连续值
我尝试了很多其他解决方案,但找不到答案。我错过了什么?
答案 0 :(得分:63)
考虑使用annotate()
在地块上的给定位置放置您想要的任何文本。因子变量,如x轴上的清晰度因子,每个级别都有一个数字,因此您可以使用该数字来定位文本。我假设日期变量具有相同的用法。:
ggplot(diamonds, aes(clarity, fill=cut)) + geom_bar() +
annotate("text", x=8, y=13000, label= "boat") +
annotate("text", x = 4, y=13000, label = "ship")
在评论后编辑
为了提高效率,您可以组合注释,例如:
ggplot(diamonds, aes(clarity, fill=cut)) + geom_bar() +
annotate("text", x = c(2,4,6,8), y=13000, label = c("two", "ship", "six", "boat"))
答案 1 :(得分:0)