是否可以调整 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
我想要修改默认行为,以实现由垂直线、水平线和对角线组成的网格。一种比较麻烦的方法是使用线段:
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")
这似乎是一种解决方法。但实际上需要的分段数取决于数据的范围。虽然可以编写一个函数来计算考虑对角线之间所需空间的分段数,但ggplot2
仍将处理此“解决方法数据”作为实际数据。这正是我想避免的。
scale_x_date
时,会变得非常麻烦。此外,虽然可以使用theme()
来回顾性地改变垂直和水平网格线,但是geom_abline
却不能。 - user2911296ggplot2
的代码库。虽然我不是一个专业的开发人员,但从研究代码库中得出的感觉是,网格线应该反映坐标系(例如,coord_polar
创建径向网格线)。因此,我认为没有明显的方法可以使网格线(正确理解)呈对角线状,因为在坐标系的背景下,对角线网格线没有易于解释的方式。 - Weihuang Wong