「R」ggplot2 去掉坐标留余

2020-07-02 15:45:39 浏览数 (1)

ggplot2 在绘图的时候,会在数据的边界部分进行留余操作(base plot 也会这么做),这样使得数据不会落到坐标轴的边界甚至超出边界,大多数情况这是好的。但较真的我们往往在绘图时想要去掉这个留余,我在之前的文章《分析与可视化ROC——plotROC、pROC》就用到过,用来去掉连续数值轴的留白。

离散轴也是可以去掉这个留白的,这类问题其实都需要修改 ggplot2 的标尺,即以scales_开头的函数。通过上面的代码我们可以进行类推,下面使用 ggplot2 提供的示例数据看一个例子。

代码语言:javascript复制
> 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 分不开的。

0 人点赞