R ggplot2 条形图顶部有圆角

JSP*_*JSP 4 r bar-chart ggplot2

我想创建一个 ggplot2 条形图,条形顶部有圆角。考虑以下示例数据:

data <- data.frame(x = letters[1:3],
                   y = c(5, 1, 4))
Run Code Online (Sandbox Code Playgroud)

基于 ggchicklet 包,我可以绘制带有圆角的 ggplot2 条形图:

library("ggplot2")
library("ggchicklet")

ggplot(data, aes(x, y)) +
  geom_chicklet(radius = grid::unit(10, 'mm'))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

然而,正如您在图像中看到的,条形两侧的角都是圆的。如何创建 ggplot2 条形图,其中只有条形的顶部是圆形的?

All*_*ron 6

正如 @GregorThomas 所建议的,您可能需要一些黑客修复。这是我的努力:

ggplot(data, aes(x, y + 2)) +
  geom_chicklet(radius = grid::unit(10, 'mm')) +
  scale_y_continuous(breaks = 0:8, labels = (-2):6) +
  coord_cartesian(ylim = c(2, 8)) +
  geom_rect(aes(xmin = 0.5, xmax = 3.5, ymin = 0, ymax = 1.95), fill = "gray95") +
  labs(y = "y")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

这允许保留填充和轮廓:

ggplot(data, aes(x, y + 2, fill = x)) +
  geom_chicklet(radius = grid::unit(10, 'mm'), colour = "black") +
  scale_y_continuous(breaks = 0:8, labels = (-2):6) +
  coord_cartesian(ylim = c(2, 8)) +
  geom_rect(aes(xmin = 0.5, xmax = 3.5, ymin = 0, ymax = 1.95), fill = "gray95") +
  labs(y = "y")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述