2012-09-26 139 views
5

我有一個由.csv文件中的3列組成的數據集。前兩列是地圖座標,第三列是相應地圖座標中鑽孔中鋅的百分比。我想創建一個等值線圖來顯示Zn濃度隨距離的變化。所有代碼示例都能夠以矩陣的形式找到使用數據,而我的代碼則在列表中。我已經嘗試了幾種不同的繪製方式,我已經在下面展示了這些方法,大多數方法都會給我提供錯誤消息,這些錯誤消息沿着「我找不到數據的佈局」的「object x not found」行。有誰知道如何做到這一點?我在下面添加了一個類似的數據集。感謝您提前提供任何幫助。 冬青使用列表中的數據創建填充輪廓圖

數據集:

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))) 

回答

8

與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") 
+0

啊,所以我只是使用了錯誤的功能。這有效,但有可能填充顏色線之間? –

+0

嘗試:'g + stat_density2d(aes(fill = .. density ..),contour = FALSE,geom =「tile」)' – csgillespie

+0

謝謝!當兩者結合時,這絕對是我正在尋找的情節類型。然而,密度的關鍵並沒有給出鋅的價值,它給出的價值電子08 –