r - ggplot 2 facet_grid “free_y”,但将Y轴四舍五入到最接近的整数

标签 r ggplot2

使用时:

facet_grid(SomeGroup ~, scales="free_y") 

是否可以指定,尽管您希望标度是“免费的”,但还是希望将它们四舍五入到最接近的整数?

任何帮助将不胜感激。

最佳答案

鉴于breaks可以使用一个函数,因此我想您可以将基本的中断算法包装在一个不允许非整数的函数中。

从一个例子开始:

ggplot(mtcars, aes(wt, mpg)) + 
geom_point() + 
facet_grid(am+cyl~., scales="free_y")

查看scales::pretty_breaks的组合方式,创建一个包装它的函数,并且仅允许整数突破:
library("scales")
integer_breaks <- function(n = 5, ...) {
  breaker <- pretty_breaks(n, ...)
  function(x) {
     breaks <- breaker(x)
     breaks[breaks == floor(breaks)]
  }
}

现在使用返回的函数作为scale中的breaks函数
ggplot(mtcars, aes(wt, mpg)) + 
geom_point() + 
facet_grid(am+cyl~., scales="free_y") +
scale_y_continuous(breaks = integer_breaks())

关于r - ggplot 2 facet_grid “free_y”,但将Y轴四舍五入到最接近的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10558918/

相关文章:

r - 如何使用ggplot2反转堆积面积图中的堆积顺序

r - 将箱线图转换为 R 中 ggplot2 中的密度

r - n() 在 summarise_at() 中使用时行为不一致

r - 如何创建一个返回向量中前 N 个质数的循环?

r - 如何用 purrr 替换修改 for 循环

r - ggplot 为每个组绘制特定边界?

r - 通过变量编号在AES中寻址x和y

r - ggplot2:添加背景层

r - 使用另一个数据框和 grepl 在数据框中搜索字符串

r - 查找数据为大写的范围的开始和结束