gpt4 book ai didi

r - 如何用 3 个向量绘制等高线/热图?

转载 作者:行者123 更新时间:2023-12-04 13:13:14 25 4
gpt4 key购买 nike

这是我的问题的玩具版本

x = runif(10);
y = runif(10);
z = (x+y)*(x-y);

然后我想生成 z 与 (x+y) 和 (x-y) 的热图。问题是 z 是一个向量,并没有在 y 和 x 的所有组合上定义。 请注意,我不是在寻找为这些缺失值生成 z 的答案 ,这在问题的真实版本中是不可能的。这只是一个可以使用的最小版本。我能找到的所有解决方案,例如 filled.contour需要一个在自变量网格上指定的 z 矩阵,而不仅仅是一组 (x,y,z) 本身没有结构的数据点。

最佳答案

套餐akima有你需要的东西。它使用 interp 进行双变量插值.它确实为缺失的组合生成 z 值,但是如果您愿意,您不能只排除那些吗?如果您不生成 z 值,只需绘制 z ~ x*y 的 3d 散点图。

x = runif(10);
y = runif(10);
z = (x+y)*(x-y);

library(akima)
dens <- interp(x+y, x-y, z,
xo=seq(min(x+y), max(x+y), length=100),
yo=seq(min(x-y), max(x-y), length=100),
duplicate="median")

filled.contour(dens, xlab="x+y", ylab="x-y", main="z",
color.palette = heat.colors)

enter image description here

如果您真的设置为不插值,要添加到@Frank 提供的 ggplot 选项中,您可以使用多种美学来通过三维来对比点。
library(ggplot2)
dat <- data.frame(x1=x+y, x2=x-y, z=z)

## Scaling points by z dimension using size, color, and shading
ggplot(dat, aes(x1, x2, size=z, alpha=z, color=z)) +
geom_point() +
scale_color_gradient(low="red", high="yellow") +
theme_bw()

enter image description here

关于r - 如何用 3 个向量绘制等高线/热图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31216181/

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