【发布时间】:2014-08-15 13:54:06
【问题描述】:
我对 ggplot2 比较陌生,多年来一直在 R 中使用基本图形。我一直喜欢基本图形的一件事是轴中的额外填充,这样两个轴就不会在原点接触。下面是基础图形中的一个简单示例:
png(file="base.png")
plot(x,y, bty="n")
dev.off()
这使得:
然而,当我在 ggplot2 中做类似的事情时
require(ggplot2)
x <- y <- 1:10
png(file="qplot.png")
qplot(x, y) + theme_classic()
dev.off()
我明白了:
如何调整轴的绘制范围?例如对于 y 轴,我希望它停止在 10.0,而不是继续到 10.5 左右?
更新:感谢 cmets。我现在有我想要的;这是一个 sn-p,它仅将轴绘制到每个轴上的最小/最大刻度。
o = qplot(x, y) + theme_classic() +
theme(axis.line=element_blank())
oo = ggplot_build(o)
xrange = range(oo$panel$ranges[[1]]$x.major_source)
yrange = range(oo$panel$ranges[[1]]$y.major_source)
o = o + geom_segment(aes(x=xrange[1], xend=xrange[2], y=-Inf, yend=-Inf)) +
geom_segment(aes(y=yrange[1], yend=yrange[2], x=-Inf, xend=-Inf))
plot(o)
【问题讨论】: