关于ggplot,我有一个小问题,我想知道如何让数据点从0行开始,而不会在左侧,右侧和底部留下那么小的间隙。
这是我的代码:
hov.dat <- structure(list(x = c(3L, 3L, 9L, 25L, 25L, 27L, 30L, 39L, 49L,
56L, 60L, 65L), y = c(55, 54, 34.33, 34, 75.66, 44, 56.55, 54,
27.34, 30.75, 19.04, 25.29)), .Names = c("x", "y"), class = "data.frame", row.names = c(NA,
-12L))
with(hov.dat, plot(x, y))
qplot(x, y, data=hov.dat, geom=c('point', 'smooth'), method='lm', formula=y ~ ns(x, 3))
任何人都可以帮我解决我应该编码的内容,以删除图中的左,右和底部间隙(图中标有箭头)
答案 0 :(得分:1)
您必须向expand
提供scale_x_continuous
参数(y轴相同):
qplot(data=d,x,y,geom=c("point","smooth"),method="lm") +
scale_y_continuous(expand=c(0,0)) +
scale_x_continuous(expand=c(0,0))
我无法执行函数ns
,因此我没有使用您的公式。
expand:长度为2的数字向量,给出乘法和 加性膨胀常数。这些常数确保了 数据放置在离轴一定距离的位置。
请注意,您还可以扩展平滑功能的插值,如下图所示,恕我直言看起来更好。见this question on CV:
gplot(hov.dat,aes(x=x,y=y)) + geom_point() + stat_smooth(method="lm",fullrange=T) + scale_x_continuous(limits=c(-5,70),expand=c(0,0))