gpt4 book ai didi

r - R中的ggtern等高线图

转载 作者:行者123 更新时间:2023-12-03 17:48:11 28 4
gpt4 key购买 nike

关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

3年前关闭。




Improve this question




我有这个 data file它有足够的数据点让我在三元图中绘制“热图”。 (它不是真正的热图,只是一个具有足够数据点的散点图)

library(ggtern)
library(reshape2)

N=90
trans.prob = as.matrix(read.table("./N90_p_0.350_eta_90_W12.dat",fill=TRUE))
colnames(trans.prob) = NULL

# flatten trans.prob for ternary plot
flattened.tb = melt(trans.prob,varnames = c("x","y"),value.name = "W12")
# delete rows with NA
flattened.tb = flattened.tb[complete.cases(flattened.tb),]
flattened.tb$x = (flattened.tb$x-1)/N
flattened.tb$y = (flattened.tb$y-1)/N
flattened.tb$z = 1 - flattened.tb$x - flattened.tb$y

ggtern(data = flattened.tb, aes(x=x,y=y,z=z)) +
geom_point(size=1, aes(color=W12)) +
theme_bw() +
scale_color_gradient2(low = "green", mid = "yellow", high = "red")

这是我得到的:

enter image description here

我想使用 ggtern 得到类似下面的内容:

enter image description here

我的问题 是:如何使用 ggtern 获得类似于第二个数字的内容?

编辑 1 : 抱歉文件名打错了。我修复了文件名。
数据文件包含太多数据点,我无法直接将它们粘贴到此处。

第二个图是由第 3 方 Matlab 包 ternplot 生成的.我想要一个具有离散线的三元等高线图,而不是我的第一个图中的热图。更具体地说,我想指定一个等高线列表,例如 W12=0.05,0.1,0.15,... .我玩过 geom_density_terngeom_interpolate_tern几个小时,但仍然不知道如何得到我想要的。

MATLAB 代码是:
[HCl, Hha, cax] = terncontour(X,Y,1-X-Y,data,[0.01,0.1,0.2,0.3,0.4,0.5]); 

哪里 X,Y,1-X-Y指定绘图上的坐标, data存储值,向量指定轮廓的值。

最佳答案

这看起来不像你的例子那么漂亮,但希望它能让你更接近你想要的地方:

flattened.tb$a <- 0
flattened.tb$a[flattened.tb$W12 > 0.04 & flattened.tb$W12 < .05] <- 1

flattened.tb$b <- 0
flattened.tb$b[flattened.tb$W12 > 0.05 & flattened.tb$W12 < .06] <- 1

flattened.tb$c <- 0
flattened.tb$c[flattened.tb$W12 > 0.07 & flattened.tb$W12 < .08] <- 1

flattened.tb$d <- 0
flattened.tb$d[flattened.tb$W12 > 0.09 & flattened.tb$W12 < .1] <- 1


options("tern.discard.external" = F)
ggtern(data = flattened.tb, aes(x, y, z)) +
geom_line(aes(a),color="red",linetype=1) +
geom_line(aes(b),color="blue",linetype=1) +
geom_line(aes(c),color="yellow",linetype=1) +
geom_line(aes(d),color="green",linetype=1) +
theme_bw()

情节只需要一个修饰。我不能说哪些数据区域最适合绘图。

enter image description here

关于r - R中的ggtern等高线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38160110/

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