使用ggplot2根据值的间隔生成条形图

时间:2019-04-15 17:10:39

标签: r ggplot2 data.table

我有以下R data.table:

library(data.table)

dt1 = data.table(start = c(0, 3, 5, 7), end  = c(3, 5, 7, 10), size = c(0, 3, 2, 1))

print(dt1)
   start end size
1:     0   3    0
2:     3   5    3
3:     5   7    2
4:     7  10    1

我想用ggplot2绘制一个条形图,其中每个间隔由size绘制。是否有明确的方法来解决如何使用ggplot2完成此任务?

foo = data.table(x = c(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10), 
          size = c(0, 0, 0, 3, 3, 3, 2, 2, 1, 1, 1))

ggplot(data=foo, aes(x=x, y=size)) + geom_bar(stat="identity")

enter image description here

这大致就是我的想法,但不对。 3到5的间隔应该是一条实线,而不是三条线。

这是ggplot2的标准程序吗?

1 个答案:

答案 0 :(得分:3)

您可以按以下方式使用geom_rect()

ggplot(dt1,aes(xmin = start,xmax = end, ymin = 0,ymax = size)) + 
  geom_rect()

enter image description here