我想填充两条曲线之间的空间,但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