我正试图改变ggplot的'背景'颜色.我想要实现的是下图所示的情节.我已经用geom_ribbon尝试了它,但我只能定义ymin和ymax.这允许我只创建两个正方形.
我到目前为止使用的代码:
df <- data.frame(x = rnorm(10), y = rnorm(10))
ggplot(df) +
geom_point(aes(x, y)) +
geom_ribbon(aes(x = x, ymin = min(y), ymax = 0), fill = "red", alpha = .5) +
geom_ribbon(aes(x = x, ymin = min(0), ymax = max(y)), fill = "blue", alpha = .5)
Run Code Online (Sandbox Code Playgroud)
这是我想得到的结果:
ggplot示例http://i50.tinypic.com/25j8p5z.png
谢谢你的时间.
如果您希望"背景"颜色一直到图形的边缘而不仅仅是数据的极端,那么答案的变体就是:
ggplot(df) +
geom_rect(xmin = -Inf, xmax = 0, ymin = -Inf, ymax = 0, fill = "red") +
geom_rect(xmin = 0, xmax = Inf, ymin = -Inf, ymax = 0, fill = "blue") +
geom_rect(xmin = 0, xmax = Inf, ymin = 0, ymax = Inf, fill = "green") +
geom_rect(xmin = -Inf, xmax = 0, ymin = 0, ymax = Inf, fill = "yellow") +
geom_point(aes(x, y), size = 5)
Run Code Online (Sandbox Code Playgroud)

编辑:透明度
添加alpha=0.5是"工作"除了通过使用geom_rect,即使没有引用原始df数据框,为每一行df(在这种情况下为10次)绘制矩形的问题.设置alpha=0.01显示有透明度,但是在预期水平的第10位.方法应该是用矩形注释; 注释只绘制geom的单个实例,而不是原始数据框的每一行:
ggplot(df) +
annotate("rect", xmin=-Inf, xmax=0, ymin=-Inf, ymax=0, fill="red", alpha=0.5) +
annotate("rect", xmin=0, xmax=Inf, ymin=-Inf, ymax=0, fill="blue", alpha=0.5) +
annotate("rect", xmin=0, xmax=Inf, ymin=0, ymax=Inf, fill="green", alpha=0.5) +
annotate("rect", xmin=-Inf, xmax=0, ymin=0, ymax=Inf, fill="yellow", alpha=0.5) +
geom_point(aes(x, y), size=5)
Run Code Online (Sandbox Code Playgroud)

| 归档时间: |
|
| 查看次数: |
12111 次 |
| 最近记录: |