避免在ggplot中沿轴剪切点

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)

clipoff

  • 我怀疑你能做到,就像把烤好的蛋糕变成面粉和鸡蛋一样 (2认同)

bsc*_*idr 8

随着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_polarcoord_flip),那么也可以在其中使用clip = 'off'参数。

my_plot + 
coord_flip(clip = 'off')
Run Code Online (Sandbox Code Playgroud)