我有一个数据框,其中包含96平方板中每个方格的信息。
它看起来像这样......
数据框具有以下列的列:row,col,n,f.L1,f.L2,f.L3,f.L4,f.ad。
行显示正方形所在的行(A~H)。 Col显示正方形所在的列(1~12)。 n是每个方格中的蠕虫数量。 f.L1,f.L1,f.L2,f.L3,f.L4和f.ad是蠕虫所处的不同增长阶段。这些列具有人口百分比(十进制数)在那个特定的阶段。
我正在尝试制作一个堆积的条形图...显示一个人口条填充了蠕虫所处的不同阶段的百分比。因此,每行有8个不同的图表是理想的(A ~H),每个图表显示该行中每列的12个不同的条(1~12),并且每个条填充有来自f.L1,f.L2,f.L3,f.L4和f.ad的百分比。
提前致谢!
答案 0 :(得分:0)
x<-data.frame(row=rep(c("A","B","C","D","E","F","G","H"),each=12), col=rep(c(1:12),8), n=100, l1=runif(96),l2=runif(96),l3=runif(96),l4=runif(96),l5=runif(96),l6=runif(96))
library(reshape2)
y<-melt(x,id.var=c("row","col","n"))
library(ggplot2)
ggplot(y, aes(as.factor(col),value, fill=variable))+geom_bar(stat="identity",position="stack")+facet_grid(~row)
答案 1 :(得分:0)
require(reshape2)
require(ggplot2)
## Generate a toy data, with 3 rows, 6 columns, 5 squares
set.seed(123)
nr <- 3
nc <- 6
ns <- 5
x <- data.frame(row=rep(LETTERS[1:nr],each=nc),col=factor(rep(1:nc,nr)),f.L=matrix(1:(nr*nc*ns),ncol=5))
## Now continue with the "toy" data or apply your real data
x.melt <- melt(x,id=c("row","col"))
head(x)
head(x.melt)
## > head(x)
## row col f.L.1 f.L.2 f.L.3 f.L.4 f.L.5
## 1 A 1 1 19 37 55 73
## 2 A 2 2 20 38 56 74
## 3 A 3 3 21 39 57 75
## 4 A 4 4 22 40 58 76
## 5 A 5 5 23 41 59 77
## 6 A 6 6 24 42 60 78
## > head(x.melt)
## row col variable value
## 1 A 1 f.L.1 1
## 2 A 2 f.L.1 2
## 3 A 3 f.L.1 3
## 4 A 4 f.L.1 4
## 5 A 5 f.L.1 5
## 6 A 6 f.L.1 6
## >
ggplot(x.melt, aes(x=col,y=value, fill=variable)) +
geom_bar(position="fill",stat="identity") +
facet_grid(row~.)