use*_*299 7 r clipping ggplot2
我正在绘制一个时间序列,其响应变量的平均值为月(x轴)的点(y轴).
位于x轴上的值(即0值)被剪裁.我可以改变y轴的极限以包括一些低于0的填充,但我不愿意.
有没有办法在x轴的前面或顶部绘制这些0点?
bap*_*ste 19
试试这个,
q <- qplot(1:10,1:10,size=I(10)) + scale_y_continuous(expand=c(0,0))
gt <- ggplot_gtable(ggplot_build(q))
gt$layout$clip[gt$layout$name=="panel"] <- "off"
grid.draw(gt)
Run Code Online (Sandbox Code Playgroud)

随着ggplot2版本3.0.0的发布,您可以简单地使用coord_cartesian(clip = 'off')。
library(ggplot2)
qplot(x = 1:10, y = 1:10, size=I(10)) +
scale_y_continuous(expand=c(0,0)) +
coord_cartesian(clip = 'off') +
labs(title = "coord_cartesian(clip = 'off')")
Run Code Online (Sandbox Code Playgroud)
如果您使用的是不太常用的coord_*系统或函数之一(例如coord_polar或coord_flip),那么也可以在其中使用clip = 'off'参数。
my_plot +
coord_flip(clip = 'off')
Run Code Online (Sandbox Code Playgroud)