Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R ggplot2条形图,条形图顶部有圆角_R_Ggplot2_Bar Chart - Fatal编程技术网

R ggplot2条形图,条形图顶部有圆角

R ggplot2条形图,条形图顶部有圆角,r,ggplot2,bar-chart,R,Ggplot2,Bar Chart,我想创建一个ggplot2条形图,条形图顶部有圆角。考虑下面的示例数据: data <- data.frame(x = letters[1:3], y = c(5, 1, 4)) 但是,正如您在图中所看到的,在条的两侧,角都是圆形的。我怎样才能创建一个ggplot2条形图,其中只有条形图的顶部是圆形的?正如@GregorThomas所建议的,您可能需要一些修改。以下是我的努力: ggplot(data, aes(x, y + 2)) + geo

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

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


但是,正如您在图中所看到的,在条的两侧,角都是圆形的。我怎样才能创建一个ggplot2条形图,其中只有条形图的顶部是圆形的?

正如@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")

这样可以保留填充和轮廓:

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")

正如@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")

这样可以保留填充和轮廓:

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")

可能有点粗糙,但你能画一个第二个短的带方形角的条吗<代码>…+几何坐标(aes(y=y/2))。设置
填充
使两层匹配,不要使用
颜色
轮廓,这样看起来应该没问题。否则,事情会变得很艰难
geom_chicklet
使用
grid::roundrectGrob
,它不允许您为不同的角指定不同的圆角半径。@Gregor Thomas请参阅我的甚至更黑的hack,它允许填充和outlines@GregorThomas谢谢,虽然我需要手动调整钢筋的宽度,但这还是有效的。可能有点老套,但是你能画一个第二个,短一点的正方形角条吗<代码>…+几何坐标(aes(y=y/2))。设置
填充
使两层匹配,不要使用
颜色
轮廓,这样看起来应该没问题。否则,事情会变得很艰难
geom_chicklet
使用
grid::roundrectGrob
,它不允许您为不同的角指定不同的圆角半径。@Gregor Thomas请参阅我的甚至更黑的hack,它允许填充和outlines@GregorThomas非常感谢。即使我不得不手动调整条的宽度,这仍然有效。非常感谢您的回复!这对我来说很好。保持轮廓的聪明方法!非常感谢您的回复!这对我来说很好。保持轮廓的聪明方法!