Hãy thử điều này,
library(ggplot2)
d <- data.frame(x=1:10, y=rnorm(10))
base_breaks_x <- function(x){
b <- pretty(x)
d <- data.frame(y=-Inf, yend=-Inf, x=min(b), xend=max(b))
list(geom_segment(data=d, aes(x=x, y=y, xend=xend, yend=yend), inherit.aes=FALSE),
scale_x_continuous(breaks=b))
}
base_breaks_y <- function(x){
b <- pretty(x)
d <- data.frame(x=-Inf, xend=-Inf, y=min(b), yend=max(b))
list(geom_segment(data=d, aes(x=x, y=y, xend=xend, yend=yend), inherit.aes=FALSE),
scale_y_continuous(breaks=b))
}
ggplot(d, aes(x,y)) +
geom_point() +
theme_bw() +
theme(panel.border = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank()) +
base_breaks_x(d$x) +
base_breaks_y(d$y)
Chỉnh sửa: a related issue has since been discussed trong gói ggtheme, và có khả năng cung cấp một giải pháp sạch (không cần phải cung cấp dữ liệu một cách rõ ràng để phá vỡ chức năng).
điều này đặt ra câu hỏi, tại sao không tạo các ô cơ sở [trông giống như ggplot2?] (Http://rwiki.sciviews.org/doku.php?id=tips:graphics-misc:ggplot2theme_inbase);) – baptiste
Bởi vì tôi có thể không cập nhật cũng như làm lại các ô cơ bản. Tôi đã thực sự xem xét việc chỉnh sửa SVG của các ggplot tạo ra, nhưng đó là một hack. – Christian
Nếu bạn muốn số hóa các ô cơ bản, bạn có thể thử gói 'số hóa'. – mnel