是否可以通过向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)
我正在考虑的是修改默认行为,以实现由垂直,水平和对角线组成的网格。实现此目的的一种非常混乱的方法是使用段:
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)
这似乎是一种解决方法。但是所需的实际段数取决于数据范围。尽管可以编写一种函数来考虑对角线之间的所需空间来计算段数,ggplot2
但是仍然会将这种“变通方法数据”视为实际数据。这就是我要避免的。
怎么geom_abline
样
gg + geom_abline(intercept=seq(-100, 100, 25),
slope=1,
colour="white")
Run Code Online (Sandbox Code Playgroud)