ggplot2 在绘图的时候,会在数据的边界部分进行留余操作(base plot 也会这么做),这样使得数据不会落到坐标轴的边界甚至超出边界,大多数情况这是好的。但较真的我们往往在绘图时想要去掉这个留余,我在之前的文章《分析与可视化ROC——plotROC、pROC》就用到过,用来去掉连续数值轴的留白。
离散轴也是可以去掉这个留白的,这类问题其实都需要修改 ggplot2
的标尺,即以scales_
开头的函数。通过上面的代码我们可以进行类推,下面使用 ggplot2
提供的示例数据看一个例子。
> d <- ggplot(subset(diamonds, carat > 1), aes(cut, clarity))
geom_jitter()
> d
可以看到上面的图像是有留白的,下面尝试去掉它:
代码语言:javascript复制> d scale_x_discrete(expand = c(0, 0)) scale_y_discrete(expand = c(0, 0))
的确可以。其他类似的操作应该也可以进行类推。这种易理解、易使用的特性是和 ggplot2
的语法和良好 API 分不开的。