gpt4 book ai didi

r - Filled.contour 与 ggplot2 + stat_contour

转载 作者:行者123 更新时间:2023-12-03 18:43:24 27 4
gpt4 key购买 nike

我是 ggplot2 的新手,我正在尝试复制我使用 filled.contour 创建的图形与 ggplot2。

下面是我的代码:

require(ggplot2)
require(reshape2)

#data prep
scale <- 10

xs <- scale * c(0, 0.5, 0.8, 0.9, 0.95, 0.99, 1)
ys <- scale * c(0, 0.01, 0.05, 0.1, 0.2, 0.5, 1)

df <- data.frame(expand.grid(xs,ys))
colnames(df) <- c('x','y')
df$z <- ((scale-df$x) * df$y) / ((scale-df$x) * df$y + 1)

#filled contour looks good
filled.contour(xs, ys, acast(df, x~y, value.var='z'))

#ggplot contour looks bad
p <- ggplot(df, aes(x=x, y=y, z=z))

p + stat_contour(geom='polygon', aes(fill=..level..))

我不知道如何让 ggplot 轮廓一直填充到左上角的多边形(在 (0,10) 处有一个点,z = 0.99)......我得到的只是这些奇怪的三角形

最佳答案

创建一个 ggplot版本filled.contour情节你需要有一个更大的 data.framedf您的示例中的对象并使用 geom_tile将产生您正在寻找的情节。考虑以下:

# a larger data set
scl <- 10
dat <- expand.grid(x = scl * seq(0, 1, by = 0.01),
y = scl * seq(0, 1, by = 0.01))
dat$z <- ((scl - dat$x) * dat$y) / ((scl - dat$x) * dat$y + 1)

# create the plot, the geom_contour may not be needed, but I find it helpful
ggplot(dat) +
aes(x = x, y = y, z = z, fill = z) +
geom_tile() +
geom_contour(color = "white", alpha = 0.5) +
scale_fill_gradient(low = "lightblue", high = "magenta") +
theme_bw()

enter image description here

关于r - Filled.contour 与 ggplot2 + stat_contour,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25788727/

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