着色geom_bar中的额外间距

时间:2014-03-31 13:48:17

标签: r ggplot2

以下代码

library(ggplot2)
library(data.table)

dt.source <- data.table(
                         category = c("A", "B", "C", "D"),
                         value = c(100, 80, 85, 11)
                       )

bar.width <- 0.9
p <- ggplot()
p <- p + geom_bar(data = dt.source, aes(x = category, y = value, width = bar.width),
                  stat = "identity", position = "dodge", fill = "darkgrey")
p

生产这个条形图(竖条),

enter image description here

我知道如何避免ggplot添加的额外空间以提高可读性 使用

p <- p + scale_x_discrete(expand = c(0, 0))

现在我想知道是否可以为这个额外的空间增加一些额外的颜色,例如

enter image description here

请你给我一个提示,在那里我可以找到如何控制panel.border的详细说明。因为这个原因,我开始重读Hadley Wickhams的书有点犹豫。

我刚刚意识到我错过了为图表右侧的额外空间着色,我不得不承认,我不知道图表顶部有一些额外的空间。

一如既往,非常感谢提前

1 个答案:

答案 0 :(得分:1)

可以制作几个矩形

library(ggplot2)
p <- ggplot(data=diamonds, aes(x=price, y=carat)) + geom_line(aes(color=color))
rect <- data.frame (xmin1 = -Inf, xmax1 = Inf, 
                    ymin1 = -Inf, ymax1 = 0,
                    xmin2 = -Inf, xmax2 = 0,
                    ymin2 = -Inf, ymax2 = Inf)
p + geom_rect(data=rect, aes(xmin=xmin1, xmax=xmax1, ymin=ymin1, ymax=ymax1), 
              color="red", fill="red", inherit.aes=FALSE) +
    geom_rect(data=rect, aes(xmin=xmin2, xmax=xmax2, ymin=ymin2, ymax=ymax2), 
              color="red", fill="red", inherit.aes=FALSE)

enter image description here