Spróbuj tego,
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)
Edit: a related issue has since been discussed w pakiecie ggtheme i potencjalnie zapewnia czystsze rozwiązanie (nie ma potrzeby dostarczania danych wprost do funkcji przerwami).
to nasuwa się pytanie, dlaczego nie zrobić Działki bazowe (http://rwiki.sciviews.org/doku.php?id=tips:graphics-misc:ggplot2theme_inbase) [wyglądać ggplot2?];) – baptiste
Bo mogę ani nie aktualizuj ani nie przerabiaj wykresów podstawowych. Właściwie rozważałem edycję SVG generowanych przez ggplota, ale to jest taki hack. – Christian
Jeśli chcesz zdigitalizować podstawowe wykresy, możesz wypróbować pakiet 'digitize'. – mnel