R - ggplot上的背景颜色沿对角线分割?

Posted

技术标签:

【中文标题】R - ggplot上的背景颜色沿对角线分割?【英文标题】:R - Background colour on ggplot split across a diagonal? 【发布时间】:2016-05-10 04:39:52 【问题描述】:

使用 R,库(ggplot2)

我有一个完美正方形的 ggplot。从左上角到右下角,我有一条线。

所以说 xlim(0,100), ylim(0,100) 和 geom_abline(intercept=100, slope=-1)。

如何使线上方的所有内容都显示为蓝色背景而下方为红色?

【问题讨论】:

【参考方案1】:
library(ggplot2)

dat = data.frame(x=c(0,100), ymin=0, y=c(100,0), ymax=100)

ggplot(dat) +
  geom_ribbon(aes(x, ymin=y, ymax=ymax), fill="blue") +
  geom_ribbon(aes(x, ymin=ymin, ymax=y), fill="red") +
  geom_abline(aes(intercept=100, slope=-1)) +
  #geom_line(aes(x,y), lwd=1) +  # If you just want a line with the same extent as the data
  theme_bw()

类似地,对于更一般的曲线:

x=seq(0,100,0.1)
dat = data.frame(x=x, ymin=0, y=2*x + 3*x^2 - 0.025*x^3)
dat$ymax=max(dat$y)

ggplot(dat) +
  geom_ribbon(aes(x, ymin=y, ymax=ymax), fill="blue") +
  geom_ribbon(aes(x, ymin=ymin, ymax=y), fill="red") +
  geom_line(aes(x,y), colour="yellow", lwd=1) +
  theme_bw()

【讨论】:

你是个向导,@eipi10 感谢您的帮助。赞成并接受。

以上是关于R - ggplot上的背景颜色沿对角线分割?的主要内容,如果未能解决你的问题,请参考以下文章

R语言ggplot2可视化使图形的背景在不同区域有不同的颜色实战

R语言ggplot2可视化:在ggplot2中将图例(legend)移到图内自定义图例所处的位置自定义图例背景图例所处边框的颜色

[R ggplot geom_text打掉背景 - 错误?

如何更改使用 ggplot2 制作的绘图的背景颜色

R可视化包ggplot2更改背景色实战

R可视化包ggplot2设置透明背景实战