ggplot2:将对角线添加到网格

hit*_*rds 4 r ggplot2

是否可以通过向ggplot2网格添加对角线的方式进行调整?

显然,默认网格由垂直线和水平线组成:

df <- data.frame(a = sample(0:100, 100, T), b = sample(0:100, 100, T))
gg <- ggplot() + geom_point(data = df, aes(x = a, y = b))
gg
Run Code Online (Sandbox Code Playgroud)

情节1

我正在考虑的是修改默认行为,以实现由垂直,水平和对角线组成的网格。实现此目的的一种非常混乱的方法是使用段:

d <- data.frame(x = c(0,0,0,0,25,50,75),
                y = c(75,50,25,0,0,0,0),
                xend = c(25,50,75,100,100,100,100),
                yend = c(100,100,100,100,75,50,25))


gg + 
  geom_segment(data = d, aes(x = x, y = y, xend = xend, yend = yend), colour = "white")
Run Code Online (Sandbox Code Playgroud)

情节2

这似乎是一种解决方法。但是所需的实际段数取决于数据范围。尽管可以编写一种函数来考虑对角线之间的所需空间来计算段数,ggplot2但是仍然会将这种“变通方法数据”视为实际数据。这就是我要避免的。

Wei*_*ong 5

怎么geom_abline

gg + geom_abline(intercept=seq(-100, 100, 25),
                 slope=1,
                 colour="white")
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明