如何在水平条形图中的条形右边添加计数标签?

时间:2019-06-22 01:56:31

标签: r ggplot2

例如,此代码

data <- data.frame(month = factor(c("Nov", "Dec", "Jan", "Feb")),
                   count = c(1489, 788, 823, 1002))

g <- (ggplot2::ggplot(data, ggplot2::aes(x=month, y=count))
        + ggplot2::geom_bar(stat="identity")
        + ggplot2::scale_x_discrete(limits=rev(data$month))
        + ggplot2::coord_flip())

g

...产生这个

enter image description here

将计数(1489、788等)添加到相应栏右侧的最简单方法是什么?

我对水平案例特别感兴趣,但是我也很想知道如何对垂直案例进行类似的操作(在每个小节的顶部):

g <- (ggplot2::ggplot(data, ggplot2::aes(x=month, y=count))
        + ggplot2::geom_bar(stat="identity"))

g

enter image description here

1 个答案:

答案 0 :(得分:4)

您正在寻找geom_text。您也不必在每次从函数中调用ggplot2包时都指定它(尽管我不知道您还加载了什么!)。您应该注意的水平和垂直之间的唯一区别是hjustvjust参数,它们可以水平或垂直地调整标签的位置。 (我把它们放进去是因为默认位置似乎与条的边缘重叠。)

ggplot(data, aes(x=month,y=count)) + 
    geom_bar(stat="identity") +
    scale_x_discrete(limits=(data$month)) +
    geom_text(aes(label=count), vjust=-0.7)

ggplot(data, aes(x=month,y=count)) +
    geom_bar(stat="identity") + 
    scale_x_discrete(limits=(data$month)) + 
    geom_text(aes(label=count), hjust=-0.3) +
    coord_flip()

horiz vert