我对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?
更新:感谢评论。现在我已经得到我想要的结果了;这里有一个代码片段,可以将轴线仅绘制到每个轴上的最小/最大刻度。
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)