2012-08-16 70 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