我想填充兩條曲線之間的空間,但geom_ribbon使用不同的y值而不是x值。我的y軸是深度,所以我不想交換軸。有沒有辦法做到這一點?這裏是我的數據集的樣本:R ggplot2:通過改變x值(geom_ribbon)和格式化日誌軸標籤填充2行之間的空間
Statsrep <- structure(list(Depth = c(34L, 74L, 114L, 164L, 204L, 264L, 304L, 344L, 384L, 424L,
464L, 504L, 554L), Min = c(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2), Max = c(38, 105, 86, 44, 68,
155, 160, 68, 120, 1670, 178, 110, 84), Average = c(5.64, 12.08, 17.42, 6.5, 11.59, 11.09, 10.1,
9.09, 8.08, 38.96, 15.94, 6.53, 13.21), Mode = c(2,2,3,2,6,2,2,2,2,2,2,2,2)), .Names =
c("Depth", "Min", "Max", "Average", "Mode"), row.names = c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L,
10L, 11L, 12L, 13L), class = "data.frame")
Statsrep
我目前使用的代碼是:
Statsrep <- read.csv(file="filename.csv", header=TRUE, sep=" ")
p1 <- ggplot(data = Statsrep, aes(xmin=Min, xmax=Max, y=Depth)) +
geom_ribbon(aes(fill="#CCCCCC"))
p1 <- p1 + coord_trans(x = "log10") +
scale_x_continuous(breaks=c(1, 10, 100, 1000, 1500)) +
ylim(600,0)
p1 <- p1 + layer(geom = "path")
p1 + xlab("GRAINSIZE/mm")
p1 + ylab("DEPTH/m")
另外,我想自定義日誌x軸,以便有1,10,100, 1000個標籤顯示並且等距排列,與對數座標紙相似。此代碼僅顯示朝向軸右側的100,1000,1500。有沒有什麼方法可以像這樣格式化軸? 感謝您提前提供任何幫助。霍莉
請問您可以重複嗎? http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – 2012-08-16 17:29:34
我的歉意。我希望這會讓它變得更容易一些?我不知道如何從列表中調用數據,因此您可能需要將其保存到csv文件中 - 對不起。 – 2012-08-16 18:36:37
那肯定解決了這個問題,非常感謝你們!你剛剛結束了無數小時的挫折。 Holly – 2012-08-17 12:21:48