我想做一个三角形图来表示X
、Y
和Z
因子所有可能组合的响应面,三角形内的梯度区域表示响应变量Gi
,圆点表示X
的10个组合, Dataframe dt
中的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中做到这一点呢?
请查找启发我的Python代码的link。
2条答案
按热度按时间mnemlml81#
以下R项目可以生成三元图:https://cran.r-project.org/web/packages/Ternary/vignettes/Ternary.html
可以换一种方式问这个问题,比如“是否有一个R库可以帮助我像这个python库那样绘图?”这样的问题会更好地被接受,因为将库从一种语言转换为另一种语言是非常激烈的。
hgb9j2n62#
下面是一个使用Ternary包的示例脚本,遵循其interpolation example: