0

我有 3 列数据。第一列,深度,应该在 x 轴上。另外两列是 nr 和 r。我需要将数据绘制在堆叠条形图中,A 在底部,B 在 nr 的顶部。数据非常大(即读取深度从 0 到 1022),所以我无法在 r 或此处专门输入所有内容。以下是数据的示例:

Depth       r        nr
6          2395     2904
8          0        3095
9          2689     0
12         3894     3578
15         5        4739

r 和 nr 必须在 y 轴上,并且深度必须在 x 轴上。我已经尝试了所有我能想到的方法,但无法获得要使用的“高度”或仅获得基本方程式。

4

3 回答 3

1

以长格式工作

#using reshape2::melt
library(reshape2)

 # assuming your original data.frame is called `D`
 longD <- melt(D, id.var = 1)

 ggplot(longD, aes(x = Depth, y = value, colour = variable, fill = variable)) +
   geom_bar(stat = 'identity')

在此处输入图像描述

于 2013-07-19T00:31:59.117 回答
1

使用barchartfromlattice你可以处理宽格式:

library(lattice)
barchart(r+nr~factor(Depth),data=dt,stack=TRUE,auto.key=TRUE)

在此处输入图像描述

等效于此,使用来自@mnel 答案的长格式:

barchart(value~factor(Depth),data=longD,
                  groups=variable,stack=TRUE,auto.key=TRUE)
于 2013-07-19T00:43:53.907 回答
1

只是为了显示基本 R 图形也可以匹配它,并假设您的 data.frame 被调用dat

barplot(
  t(dat)[2:3,],
  names.arg=t(dat)[1,],
  space=c(0,diff(t(dat)[1,])),
  axis.lty=1
)

在此处输入图像描述

于 2013-07-19T01:01:53.553 回答