gpt4 book ai didi

r - 如何防止 xlim 使用 geom_curve 改变高度?

转载 作者:行者123 更新时间:2023-12-04 02:16:34 26 4
gpt4 key购买 nike

我有以下代码:

library(tidyverse)
data_frame(x = 1:5, x1=x+1, c = c('a','a','a','b','b')) %>%
ggplot() +
geom_curve(aes(x = x, xend= x1, y = 0, yend = 0), curvature = -1.3, alpha=.2) +
facet_wrap(~ c, ncol=1)

enter image description here
但我想调整 y 轴的限制以将背景区域切割到 ~ .1 以上。

我试图这样做:
data_frame(x = 1:5, x1=x+1, c = c('a','a','a','b','b')) %>% 
ggplot() +
geom_curve(aes(x = x, xend= x1, y = 0, yend = 0), curvature = -1.3, alpha=.2) +
facet_grid(c ~ .) +
ylim(0,.35) +
facet_wrap(~ c, ncol=1)

但它只是根据 ylim 中的值重新缩放拱门.我怎样才能防止这种行为?

最佳答案

coord_fixed()有参数可以让你精确地控制你想要的东西。

另见 http://ggplot2.tidyverse.org/reference/coord_fixed.html以供引用。

不幸的是,您的 x 无法使用。和 x1以动态方式在 coord_fixed() .

只要您能正确放置绝对值(下面的 0.66.4),您就可以执行以下操作:

data_frame(x = 1:5, x1 = x+1, c = c('a','a','a','b','b')) %>%
ggplot(.) +
geom_curve(aes(x = x, xend = x1, y = 0, yend = 0), curvature = -1.3, alpha = .2) +
facet_grid(c ~ .) +
coord_fixed(ratio = 7, xlim = c(0.6, 6.4), ylim = c(0, 0.12), expand = FALSE) +
scale_y_continuous(breaks = c(0, 0.1))

假设这看起来像您想要的样子,请注意我设置了 expand = FALSE开始 ylim为零,并将缓冲区添加到 xlim (0.4) 和 ylim 的上限.
我修改了默认 ratio值从 1 到 7,将您从 0.7 缩小到 0.1,这就是我理解您最终想要的。 ratio = 1将意味着您在 y 轴上具有与 x 轴上相同的比例(相同的距离)(我相信这就是您所说的重新缩放)。

最后,我不得不为 y 轴添加手动中断(减少一些),这样网格框会更大一点,这也是我推断出的你可能的愿望。

关于r - 如何防止 xlim 使用 geom_curve 改变高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48084316/

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