【发布时间】:2021-12-12 04:40:21
【问题描述】:
我想制作一个三角形图来表示X、Y 和Z 因子的所有可能组合的响应面,三角形内的梯度区域表示响应变量Gi。这些点代表数据框dt 中X、Y 和Z 的十种组合。 Gi 和 (X, Y, Z) 之间的相关性定义为mdl <- lm (Gi ~ X*Y*Z)。这是数据和我尝试过的:
X <- rep(c(.45,.4,.55,.4,.43,.5,.43,.5,.43,.48), each = 3)
Y <- rep(c(.15, .12,.22,.14,.14,.19,.12, .17,.17,.12 ), each = 3)
Z <- rep(c(.15,.22,.12,.12,.19,.14,.14,.17,.12,.17), each = 3)
Gi <- c(353,381,320,312,335,265,394,350,374,320,299,316,300,304,295,360,331,395,351,280,342,299,303,279,374,364,419,306,290,315)
dt <- data.frame (X, Y, Z, Gi)
ggtern(data = dt, aes(x = X, y = Y, z = Z, value = Gi)) +
stat_interpolate_tern(geom="polygon",
formula = value ~ x+y,
method = lm,
aes(fill = ..level..), expand = 1) +
scale_fill_gradient(low="green", high="blue") +
geom_point (fill = "white", size = 3, shape = 21, color = "white") +
theme_gray () +
theme ( tern.axis.arrow.show = T)
但是,输出不是我想要的。我发现了一个使用 Python 的三元图热图的令人兴奋的例子,这正是我想要的。但是,我只熟悉 R,我想做类似的东西。我怎么能在 R 中做到这一点?
请找到 link 以获得启发我的 Python 代码。
【问题讨论】:
-
我建议查看
ggtern包作为在 R 中制作三元图的好方法。 -
嗨黄乐。答案是“是”——我们可以帮助您将代码翻译成 R。您在自己的尝试中遇到了什么问题?请记住,Stack Overflow 是一个问答网站,人们可以在这里搜索特定编码问题的答案 - 它不是针对单个项目的定制代码编写服务。
-
亲爱的@Allan,感谢您的善意提醒!正如对 Michael Shomsky 的回答中提到的,我研究了 ggtern 并进行了大量搜索以制作这样的情节。我被代码下的原理卡住了,想理解它,并且可以用我自己的数据在 R 中重现。如果社区不提供编码服务,请帮我理解代码里面的原理。谢谢和问候!
-
既然有一个示例和一个特定问题,我将投票重新开放,但您应该准确说明是什么让您的代码与您想要的不同