添加文本到ggplot

时间:2015-02-27 00:40:59

标签: r ggplot2 label

(更新) 我有像这样的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))

我收到错误

  

错误:提供给离散比例的连续值

我尝试了很多其他解决方案,但找不到答案。我错过了什么?

2 个答案:

答案 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")

enter image description here

在评论后编辑

为了提高效率,您可以组合注释,例如:

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)

尝试使用以下内容: 在数字或点后使用文本Before

在 geom_text(paste0( percent, "%")) 中使用后,它看起来像这样 After