2012-08-16 71 views
2

我想填充兩條曲線之間的空間,但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。有沒有什麼方法可以像這樣格式化軸? 感謝您提前提供任何幫助。霍莉

+0

請問您可以重複嗎? http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – 2012-08-16 17:29:34

+0

我的歉意。我希望這會讓它變得更容易一些?我不知道如何從列表中調用數據,因此您可能需要將其保存到csv文件中 - 對不起。 – 2012-08-16 18:36:37

+0

那肯定解決了這個問題,非常感謝你們!你剛剛結束了無數小時的挫折。 Holly – 2012-08-17 12:21:48

回答

3

我想她想的深度向下延伸

ggplot(data = Statsrep, aes(ymin=Min, ymax=Max, x=Depth, y = Average)) + 
    geom_ribbon(alpha = 0.5) + 
    geom_line(aes(group = 1)) + 
    scale_y_log10("GRAINSIZE/mm", breaks=c(1, 10, 100, 1000)) + 
    scale_x_reverse("DEPTH/m", limits = c(600,0)) + 
    coord_flip() 

該圖看起來不同,因爲我在整個會話中使用自定義主題。

enter image description here

+0

這正是我想要的 - 謝謝!冬青 – 2012-08-17 12:22:06

2

這可能會幫助你開始,雖然我還沒有完全確定你以後:

p1 <- ggplot(data = Statsrep, aes(ymin=Min, ymax=Max, x=Depth,y = Average)) + 
     geom_ribbon(alpha = 0.5) + 
     geom_line(aes(group = 1)) + 
     scale_y_log10() + 
     coord_flip() 

enter image description here

+0

是的,那是我之後的事情,非常感謝你的幫助! Holly – 2012-08-17 12:22:59