Создание заполненного контурного графика с использованием данных в списках

У меня есть набор данных, состоящий из 3 столбцов в файле .csv. Первые 2 столбца — это координаты карты, а третий — процент содержания цинка в скважине с соответствующими координатами карты. Я хотел бы создать контурную карту, чтобы показать изменения концентрации 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)))

person Holly Elliott    schedule 26.09.2012    source источник


Ответы (1)


Работая с ggplot2, вы можете создать контурный график с вашим примером набора данных, используя:

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

давать

введите здесь описание изображения

У вас возникла пара проблем с кодом ggplot2. В частности, где вы установили эстетику, которая у вас была:

aes(x$x="X", y$y="Y", z$z="Zn")
person csgillespie    schedule 26.09.2012
comment
Ах, значит, я просто использовал неправильную функцию. Это работает, но можно ли заполнить между строк цветом? - person Holly Elliott; 26.09.2012
comment
Попробуйте: g + stat_density2d(aes(fill=..density..), contour=FALSE, geom="tile") - person csgillespie; 26.09.2012
comment
Благодарю вас! Когда они объединены, это определенно тип сюжета, который я ищу. Однако ключ для плотности не дает значения цинка, он дает значения e-08. - person Holly Elliott; 26.09.2012
comment
Я не совсем уверен, как лучше всего это сделать (у меня есть несколько идей, но я не совсем уверен, что вам нужно). А если задать еще вопрос? - person csgillespie; 26.09.2012
comment
Оки Доки. Большое спасибо за Вашу помощь! - person Holly Elliott; 26.09.2012