如何使用ggplot2之类的东西在R中的某些X坐标处创建水平矩形?

jak*_*115 4 r ggplot2

基本上,我正在尝试使用 R 创建一个图形,在该图形中我可以在绘图的 X 轴上的某些位置制作不同长度的矩形。因此,使用一些使用 ggplot2 之类的 R 代码,我会制作一个看起来像这样的图形:

    ----        -----------------                              -----------------
....|  |--------|               |------------------------------|               |
    ----        -----------------                              -----------------
Run Code Online (Sandbox Code Playgroud)

抱歉愚蠢的 ASCII 艺术!

我能找到的唯一 ggplot2 函数是geom_errorbarh,但是 coruse 只是给出了水平误差条而不是框。另外,如果可能的话,我希望这些盒子充满颜色并带有标签。而且,我不仅限于 ggplot2,我可以在 R 中使用任何东西,我只是认为 ggplot2 可能是最简单的方法。

感谢您的任何建议!

And*_*rew 5

使用 ggplot 这真的很容易做到。您只需要一个数据框来设置每个矩形的起点和终点,如下所示:

# Sample data
plot.data <- data.frame(start.points=c(5, 32),
                        end.points=c(15, 51), 
                        text.label=c("Sample A", "Sample B"))
plot.data$text.position <- (plot.data$start.points + plot.data$end.points)/2

# Plot using ggplot
library(ggplot2)
p <- ggplot(plot.data)
p + geom_rect(aes(xmin=start.points, xmax=end.points, ymin=0, ymax=3), 
              fill="yellow") + 
  theme_bw() + geom_text(aes(x=text.position, y=1.5, label=text.label)) + 
  labs(x=NULL, y=NULL)
Run Code Online (Sandbox Code Playgroud)

示例图