gpt4 book ai didi

r - 有没有办法将 geom_ribbon 与 xmin 和 xmax 的值一起使用?

转载 作者:行者123 更新时间:2023-12-05 07:24:17 26 4
gpt4 key购买 nike

使用 geom_ribbon 的标准方法是有一个固定的 x 值和一些 ymin 和 ymax 值。输入将是像 df_x 这样的数据框:

library(tidyverse)

# This works

df_x <- tibble(
x = c(1, 2),
ymax = c(0.5, 0.8),
ymin = c(0.4, 0.3)
)

ggplot(df_x) +
geom_ribbon(aes(x = x, ymin = ymin, ymax = ymax))

但是,我有一个包含逆向的数据集:y 的固定值以及 xmin 和 xmax 的一些值。但是,geom_ribbon 不接受以这种方式呈现的数据。

# This should produce an identical graph

df_y <- tibble(
y = c(0.3, 0.4, 0.5, 0.8),
xmax = c(2, 2, 2, 2),
xmin = c(2, 1, 1, 2)
)

ggplot(df_y) +
geom_ribbon(aes(xmin = xmin, xmax = xmax, y = y))

有没有一种方法可以直接绘制 df_y,而无需对 df_y 进行转换使其本质上变成 df_x?

最佳答案

我在寻找使用 geom_ribbon 做自己的事情时遇到了这个问题。我不确定 ggplot 自从你 2 年前最初提出这个问题以来是否发生了变化,但是使用 df_xdf_y 的两个图产生了相同的结果为我输出(除了每个缺少轴上的轴标签,该轴标签提供了 *min*max 值)。

library(tidyverse)

# This works

df_x <- tibble(
x = c(1, 2),
ymax = c(0.5, 0.8),
ymin = c(0.4, 0.3)
)

ggplot(df_x) +
geom_ribbon(aes(x = x, ymin = ymin, ymax = ymax))

enter image description here

df_y <- tibble(
y = c(0.3, 0.4, 0.5, 0.8),
xmax = c(2, 2, 2, 2),
xmin = c(2, 1, 1, 2)
)

ggplot(df_y) +
geom_ribbon(aes(xmin = xmin, xmax = xmax, y = y))

enter image description here

我也不同意你的第一个陈述

The standard way of using geom_ribbon is to have a fixed value of x and some values for ymin and ymax.

我认为您可能指的不是“标准方式”,而是“更常见”。 The help page解释 geom_ribbon 根据您提供的映射猜测功能区的方向;根据为 *min*max 参数提供的轴以及具有固定值的轴,这可能很明显。或者,您可以包含 geom_ribbon(orientation = 'x')geom_ribbon(orientation = 'y') 如果它没有自动(或正确)假定您想要的轴绘制色带相对于,这可能是有类似问题的人的解决方案。

但是,如果您尝试将其强行置于错误的方向,则会出现错误;在上面使用 df_y 的例子中,如果你提供 orientation = 'x',你会得到 Error: Either ymin or ymax must be given as an aesthetic.

关于r - 有没有办法将 geom_ribbon 与 xmin 和 xmax 的值一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55536652/

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