gpt4 book ai didi

r - 如何在 R 中绘制带有 3 个变量数据帧的填充轮廓图(无规则网格)?

转载 作者:行者123 更新时间:2023-12-04 16:52:39 26 4
gpt4 key购买 nike

(对不起,如果我的英语不完美...:-s)

我的问题与本主题中的问题几乎相同: Creating a filled contour plot using data in lists

但是,不同之处在于我只想在一个方向上绘制与我的 (x,y) 坐标对应的密度!我解释 :我有一个像这样的数据框:

X <- matrix(c(1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3), nrow=4)
Y <- matrix(c(-1.0190, -0.9617, -0.9044, -0.8470, -1.0617, -0.9641, -0.8664, -0.7688, 0.4623, 0.6012, 0.7401, 0.8790), nrow=4)
Z <- matrix(c(3.9216, 3.9216, 3.9216, 11.7647, 1.9608, 1.9608, 1.9608, 11.7647, 1.9608, 1.9608, 9.8039, 9.8039), nrow=4)
Niveau <- data.frame(X=c(X),Y=c(Y),Z=c(Z))

X 表示 x 坐标,Y 表示 y 坐标,Z 表示仅在 Y 方向上以百分比表示的密度。对于每个 x 坐标,我计算了 Y 方向的密度。结果在 Z 向量中。你可以看到它不是 (x,y) 中的规则网格。我想绘制密度 Z 的“等高线图”,但到目前为止,我没有成功......我试过这个命令:

ggplot(Niveau, aes(x=X, y=Y, z=Z)) + geom_density2d()

但它绘制了 x 和 y 方向的密度,而我只想要 Y 方向。当我尝试命令时:

filled.contour(t(Z), nlevels=10)

它不考虑 (x,y) 坐标。而且不可能实现:

filled.contour(X,Y,Z, nlevels=10)

经过一些研究,我找到了这个主题,我的问题是一样的: How to draw a contour plot when data are not on a regular grid?

但答案不对应:解决方案是 (x,y) 中的“规则网格”,而我没有!有人可以帮忙吗?

谢谢!

最佳答案

谢谢!!!有用 !!从我一直在寻找...

这是我做的:

 library(akima)
my.heat.colors <- function(x) { rev(heat.colors(x, alpha=1)) }
my.matrix <- interp(X,Y,Z)
ind.mat.na <- which(is.na(c(my.matrix$z)))
my.matrix$z[ind.mat.na] <- 0
filled.contour(my.matrix, nlevels=10, color=my.heat.colors)

现在我将绘制轮廓。

再次感谢!

关于r - 如何在 R 中绘制带有 3 个变量数据帧的填充轮廓图(无规则网格)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18528835/

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