r - 使用列表中的数据创建填充等高线图

标签 r list ggplot2 contour

我有一个由 .csv 文件中的 3 列组成的数据集。前 2 列是 map 坐标,第三列是在相应 map 坐标处钻孔中发现的锌的百分比。我想创建一个等高线图来显示 Zn 浓度随距离的变化。我能够以矩阵形式找到使用数据的所有代码示例,而我的则是在列表中。我已经尝试了几种不同的绘制方法,我已经在下面展示了这些方法,大多数方法都会给我错误消息“找不到对象 x”,我认为这与我的数据布局有关。有谁知道如何做到这一点?我在下面添加了一个类似的数据集。提前感谢您的任何帮助。
冬青

数据集:

Statsrep <- structure(list(X = c(156000L, 156010L, 156421L, 156450L, 156500L, 156700L, 158420L, 158646L, 158970L, 159050L, 159050L, 159130L, 159155L), Y = c(143630, 143980, 147260, 145000, 146000, 142800, 146700, 145207, 147170, 145200, 144800, 147815, 145890), Zn = c(2, 8, 4, 0, 3, 0, 2, 7, 12, 0, 4, 19, 0)), .Names = c("X", "Y", "Zn"), row.names = c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L), class = "data.frame")
Statsrep

代码:
library(ggplot2)
Grade <- read.csv(file="filename.csv", header=TRUE, sep=",")
ggplot(Grade, aes(x$x="X", y$y="Y", z$z="Zn")) +
stat_contour()

library(lattice)
Grade <- read.csv(file="filename.csv", header=TRUE, sep=",")
levelplot(Grade ~x*y, data = Zn,
xlab = "Eastings", ylab = "Northings",
col.regions = terrain.colours)

Grade <- read.csv(file="filename.csv", header=TRUE, sep=",")
x$x <- X
y$y <- Y
z$z <- Zn
filled.contour(x$x, y$y, z$z, color = terrain.colours,
xlab = "Eastings", ylab = "Northings"),
plot.axes = {axis(1, seq(156000, 165000, by=1000)); axis(2, seq(142000, 150000, by=1000))},
key.title = title(main="Zn content\n(percent)"),
key.axes= axis(4, seq(0, 20, by = 2)))

最佳答案

使用 ggplot2,您可以使用以下示例数据集创建等高线图:

ggplot(Statsrep, aes(x=X, y=Y, z=Zn)) + 
    geom_density2d()

给予

enter image description here

您在使用 ggplot2 时遇到了一些问题。代码。特别是,在您设置美学的地方:
aes(x$x="X", y$y="Y", z$z="Zn")

关于r - 使用列表中的数据创建填充等高线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12601522/

相关文章:

r - 在 azure ML 中创建自定义模块时加载 CRAN3.1 不支持的 R 包

R:根据降序总和对数据框中的列名称重新排序

python - 为什么 [range(10)] 和 list(range(10)) 不一样?

r - 如何在 ggplot2 中仅使用一个命令来增加点和文本的大小?

r - ggplot2 中的 map 可视化/显示错误?

r - 使用简单线性回归的结果创建数据框

java - 如何使用Java和R访问mongo查询结果的嵌套元素?

python - 使用参数列表删除行 Pandas

list - 关于映射和泛型的混淆

r - 将变量或表达式传递给 `aes`