gpt4 book ai didi

r - 如何只为 ggplot2 中的轴设置一个限制?

转载 作者:行者123 更新时间:2023-12-04 16:40:42 29 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





set only lower bound of a limit for ggplot

(4 个回答)


10 天前关闭。




这个问题类似于这个问题:How to set limits for axes in ggplot2 R plots? ,不同之处在于我只想限制一侧(例如,仅绘制 x>0 而不是 -5000 < x < 5000 )
并用 facets 来做.
请注意,我想知道这两种简单情况的解决方案:

  • scale_x_continuous(limits = c(-5000, 5000)) (与 xlim(-5000, 5000) 相同) - 它完全不考虑点(例如,它们不会用于 geom_smooth())
  • coord_cartesian(xlim = c(-5000, 5000))函数 - 它只是不绘制它们(但仍用于 geom_smooth())

  • 这种情况在你使用 facet_wrap(~veg, scales = "free_x)的时候经常发生并且不知道每个方面的 x 上限是多少,但您知道它们总是正值。

    最佳答案

    与 NA 一起设置限制。两者都适用于 coord_scale_职能

    我通常更喜欢 coord_ 因为它不会删除数据。对于下面的示例,您还需要删除 0 处的边距,例如与展开。

    library(ggplot2)    

    carrots <- data.frame(length = rnorm(500000, 10000, 10000))
    cukes <- data.frame(length = rnorm(50000, 10000, 20000))
    carrots$veg <- 'carrot'
    cukes$veg <- 'cuke'
    vegLengths <- rbind(carrots, cukes)

    ggplot(vegLengths, aes(length, fill = veg)) +
    geom_density(alpha = 0.2) +
    scale_x_continuous(limits = c(0, NA))
    #> Warning: Removed 94542 rows containing non-finite values (stat_density).




    ggplot(vegLengths, aes(length, fill = veg)) +
    geom_density(alpha = 0.2) +
    coord_cartesian(xlim = c(0, NA))



    创建于 2020-04-30 由 reprex package (v0.3.0)

    删除边距扩展。也有可能是一方面。对于连续轴,右边距设置为默认的多扩展 0.05。
    ggplot(vegLengths, aes(length, fill = veg)) +
    geom_density(alpha = 0.2) +
    scale_x_continuous(expand = expansion(mult = c(0, 0.05))) +
    coord_cartesian(xlim = c(0, NA))

    关于r - 如何只为 ggplot2 中的轴设置一个限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61531149/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com