首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ggplot 2 facet_grid "free_y“,但强制Y轴四舍五入为最接近的整数

ggplot 2 facet_grid "free_y“,但强制Y轴四舍五入为最接近的整数
EN

Stack Overflow用户
提问于 2012-05-12 05:32:04
回答 2查看 10.3K关注 0票数 19

使用时:

facet_grid(SomeGroup ~, scales="free_y") 

有没有可能指定,尽管您希望刻度是“自由的”,但您希望它们四舍五入到最接近的整数?

任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-12 07:39:59

假设尺度中的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)]
  }
}

现在使用它返回的函数作为刻度中的breaks函数

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

票数 32
EN

Stack Overflow用户

发布于 2012-05-12 16:27:31

我可能遗漏了一些东西,但我会做这样的事情。

library(ggplot2)
ggplot(mtcars, aes(wt, mpg)) + 
   geom_point() + 
   facet_grid(am+cyl~., scales="free_y", space = "free_y") +
   scale_y_continuous(breaks = seq(0, 40, 2), expand = c(0, 1))

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10558918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档