ggplot仅在y轴上显示正值(平面图) 库(tidyverse) mpg2%突变(hwy=hwy-30) ggplot(mpg2,aes(cty,hwy))+ 几何点() 分面网格(年份fl,scales=“free”)+ 连续缩放(扩展=扩展缩放(mult=2))

ggplot仅在y轴上显示正值(平面图) 库(tidyverse) mpg2%突变(hwy=hwy-30) ggplot(mpg2,aes(cty,hwy))+ 几何点() 分面网格(年份fl,scales=“free”)+ 连续缩放(扩展=扩展缩放(mult=2)),r,ggplot2,R,Ggplot2,有了上面的代码块,我想同时做三件事: 不要显示任何(-负y轴标签(在我的示例中,您需要删除-40、-30和-60标签)。我只想显示零和正标签 保持scales=“自由” 同时保持扩大的规模 我该怎么做 我们可以将函数传递给scale\u y\u continuous中的breaks参数,在本例中,该参数返回长度为2的数值向量 library(tidyverse) mpg2 <- mpg %>% mutate(hwy = hwy - 30) ggplot(mpg2, aes(cty,

有了上面的代码块,我想同时做三件事:

  • 不要显示任何
    (-
    负y轴标签(在我的示例中,您需要删除
    -40
    -30
    -60
    标签)。我只想显示零和正标签
  • 保持
    scales=“自由”
  • 同时保持扩大的规模
  • 我该怎么做


    我们可以将函数传递给
    scale\u y\u continuous
    中的breaks参数,在本例中,该参数返回长度为2的数值向量

    library(tidyverse)
    mpg2 <- mpg %>% mutate(hwy = hwy - 30)
     ggplot(mpg2, aes(cty, hwy)) + 
       geom_point() + 
       facet_grid(year ~ fl, scales = "free") + 
       scale_y_continuous(expand = expand_scale(mult = 2))
    
    密谋


    要按大小(即绝对值)创建标签,请在标尺中添加
    labels=abs
    。除此之外,我不知道还有什么问题。您已将刻度设置为自由…这与您期望的有何不同?在您的
    scale\u y\u continious
    中,您可以添加
    breaks=seq(0,60,10)
    以便它删除标签-或者您只是想删除
    -
    符号?或者使用
    scale\u连续(expand=expand\u scale(mult=2),limits=c(0,NA))
    从视图中删除具有负值的元素。或使用匿名函数作为标签参数:
    labels=function(x)replace(x,x<0,”)
    @Roman在构建控制图时,您希望同时查看控制上限和控制下限。它们是对称的,即使没有意义(年龄、身高、长度等),较低的控制极限也会落入负范围。出于对观众的礼貌,我可能会移除y轴的负标签,并根据上下文将LCL作为视觉提示。这是一张控制图,如果你从未见过的话
    library(ggplot2); library(dplyr)
    mpg2 <- mpg %>% mutate(hwy = hwy - 30)
    my_breaks <- function(x) c(0, (((max(x) / 2) %/% 10) + 1) * 10)
    
    my_breaks(67)
    # [1]  0 40
    
    ggplot(mpg2, aes(cty, hwy)) + 
      geom_point() + 
      facet_grid(year ~ fl, scales = "free") + 
      scale_y_continuous(expand = expand_scale(mult = 2), 
                                               breaks = my_breaks)