如何让ggplot的曲线/点从0开始?

时间:2013-09-06 09:40:39

标签: r ggplot2

关于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))

enter image description here

任何人都可以帮我解决我应该编码的内容,以删除图中的左,右和底部间隙(图中标有箭头)

1 个答案:

答案 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,因此我没有使用您的公式。

enter image description here

  

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))

enter image description here