首页 > 解决方案 > 在 (R, ggplot2) 中的条形和类别周围绘制一个矩形

问题描述

我想围绕一个类别的单个级别创建一个框/矩形,并包括轴类别文本和栏本身:

在此处输入图像描述

正如您在照片中看到的,矩形延伸到网格之外并进入绘图区域以包含轴文本。我希望有一些可定制的东西,这样我就可以画圆角或不画圆角,改变颜色,并指定它的去向。

这是我用来生成绘图的一些通用代码:

ggplot(mtcars, aes(x=factor(cyl)))+
  geom_bar(stat="count", width=0.7, fill="steelblue")+
  theme_minimal()

希望这还没有在某个地方得到回答!

标签: rggplot2

解决方案


  1. 对于矩形annotate使用"rect"
  2. 要越过 x 轴,您可以将 x 轴设置为空白
  3. 然后添加新的准轴,geom_text将 y 设置为 0 或 -1。玩耍以适应:
p <- ggplot(mtcars, aes(x=factor(cyl)))+
    geom_bar(stat="count", width=0.7, fill="steelblue")+
    theme_minimal() 
    

p + annotate("rect", xmin = 0.5, xmax = 1.5, ymin = -1, ymax = 12,
             alpha = 0, color= "green") +
    theme(axis.text.x = element_blank(),
            axis.line.x = element_blank(),
            axis.ticks.x = element_blank()) +
    geom_text(aes(y = -0.5, x = factor(cyl), 
                  label = cyl)) +
    labs(title="Rectangle over x axis!",
          x ="cyl", y = "count")

在此处输入图像描述


推荐阅读